home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 026a / db4lib.zip / DB4LIB.TXT < prev    next >
Text File  |  1991-03-29  |  152KB  |  5,861 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                                   dB4LIB
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                          By Sparkle Software
  34.  
  35.        A collection of commands for dBASE IV and dBASE III PLUS
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43. dB4LIB Version 1.0           Copyright (C) Sparkle Software 1990
  44. All Rights Reserved.
  45. dB4LIB is a trademark of Sparkle Software.
  46. dBASE III PLUS and dBASE IV are registered trademarks of Ashton-Tate
  47. Corporation.
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. DEFINITION OF SHAREWARE
  56.  
  57. Shareware distribution gives users a chance to try software before buying it.
  58. If you try a Shareware program and continue using it, you are expected to
  59. register.  
  60.  
  61. Copyright laws apply to both Shareware and commercial software, and the
  62. copyright holder retains all rights, with a few specific exceptions as stated
  63. below.  Shareware authors are accomplished programmers, just like commercial
  64. authors, and the programs are of comparable quality.  (In both cases, there
  65. are good programs and bad ones).  The main difference is in the method of
  66. distribution.  The author specifically grants the right to copy and
  67. distribute the software, either to all and sundry or to a specific group. 
  68. For example, some authors require written permission before a commercial disk
  69. vendor may copy their Shareware.
  70.  
  71. Shareware is a distribution method, not a type of software.  You should find
  72. software that suits your needs and pocketbook, whether it's commercial or
  73. Shareware.  The Shareware system makes fitting your needs easier, because you
  74. can try before you buy.  And because the overhead is low, prices are low
  75. also. Shareware has the ultimate money-back guarantee -- if you don't use the
  76. product, you don't pay for it.
  77.  
  78. DISCLAIMER - AGREEMENT
  79.  
  80. SPARKLE SOFTWARE PROVIDES dB4LIB "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  81. EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF FITNESS FOR A
  82. PARTICULAR PURPOSE OR MERCHANTABILITY AND SPARKLE SOFTWARE SHALL NOT BE
  83. LIABLE FOR ANY TORT, INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES SUCH AS LOSS
  84. OF PROFITS, LOSS OF GOODWILL, OR LOSS OF PRODUCTIVITY FROM THE USE OR
  85. INABILITY TO USE THE SOFTWARE FOR ANY PURPOSE.
  86.  
  87. SOME STATES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES SO THIS LANGUAGE
  88. MAY NOT APPLY TO YOU.  IN SUCH CASE, SPARKLE SOFTWARE LIABILITIES SHALL BE
  89. LIMITED TO A REFUND OF THE PRODUCT'S PURCHASE PRICE.
  90.  
  91. dB4LIB is a "shareware program" and is provided at no charge to the user for
  92. EVALUATION.  Feel free to share it with your friends, but please do not give
  93. it away altered or as part of another system.  The essence of
  94. "user-supported" software is to provide personal computer users with quality
  95. software without high prices, and yet to provide incentive for programmers to
  96. continue to develop new products.  If you find this program useful and find
  97. that you are using dB4LIB and continue to use dB4LIB after 30 days, you must
  98. make a registration payment of $45 (U.S. orders only, international orders
  99. are $65) to Sparkle Software.  The $45 registration fee will license one copy
  100. for use on any one computer at any one time.  You must treat this software
  101. just like a book.  An example is that this software may be used by any number
  102. of people and may be freely moved from one computer location to another, so
  103. long as there is no possibility of it being used at one location while it's
  104. being used at another. Just as a book cannot be read by two different persons
  105. at the same time.
  106.  
  107.  
  108.  
  109. Commercial users of dB4LIB must register and pay for their copies of dB4LIB
  110. within 30 days of first use or their license is withdrawn.  Site-License
  111. arrangements may be made by contacting Sparkle Software.
  112.  
  113. Anyone distributing dB4LIB for any kind of remuneration must first contact
  114. Sparkle Software for authorization.  
  115.  
  116. You are encouraged to pass a copy of dB4LIB along to your friends for
  117. evaluation.  Please encourage them to register their copy if they find that
  118. they can use it.  
  119.  
  120. ALL REGISTERED USERS WILL RECEIVE ASSEMBLY LANGUAGE SOURCE CODE FOR ALL dBASE
  121. COMMANDS, SAMPLE dBASE PROGRAM FILES, A PRINTED MANUAL, AND A 16 PAGE
  122. TUTORIAL SHOWING YOU HOW TO CREATE A dBASE COMMAND USING THE MICROSOFT MACRO
  123. ASSEMBLER AND DOS'S DEBUG!
  124.  
  125. When you register dB4LIB, you may not publish the source code in any form. 
  126. No amount of modification and/or rewrite of my source code will allow the
  127. consideration of the resultant source code to be your property.
  128.  
  129. This is the only agreement between you and Sparkle Software.  It cannot and
  130. shall not be modified unless in writing and signed both by you and an
  131. authorized officer of Sparkle Software.
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163. dB4LIB is a trademark of Sparkle Software.
  164. Microsoft, Microsoft Macro Assembler, and MS-DOS are registered trademarks of
  165. Microsoft Corporation.
  166. IBM and PS/2 are registered trademarks of International Business Machines
  167. Corporation.
  168. dBASE, dBASE III PLUS and dBASE IV are registered trademarks of Ashton-Tate
  169. Corporation.
  170. Intel is a registered trademark of Intel Corporation.
  171. CompuServe is a registered trademark of CompuServe Incorporated.
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217. Acknowledgements:
  218.  
  219. Software Development
  220. Mike Fieldman
  221.  
  222. Documentation
  223. Mike Fieldman
  224.  
  225. I would like to say "Praise the Lord" for version 1.0 being completed. 
  226. Special thanks go to my very lovely wife Nancy, Dr. Larry Stokes for giving
  227. me my first exposure to personal computers, Corey Schwartz, Dr. Jim Rassi for
  228. giving me the opportunity to teach personal computer classes, and of course,
  229. Sparky.
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.                        TABLE OF CONTENTS
  272.  
  273. ***** Make sure you read the "README.1ST" file before using dB4LIB *****
  274.  
  275. INTRODUCTION ........................................ Page 9-10
  276. HARDWARE/SOFTWARE REQUIREMENTS & PACKAGE CONTENTS ... Page 11
  277. INSTALLING dB4LIB ................................... Page 12-13
  278. REGISTRATION & SOFTWARE SUPPORT ..................... Pages 14-15
  279. USING dB4LIB ........................................ Pages 16-17
  280. EXAMPLES ............................................ Page 18
  281. IMPORTANT! .......................................... Page 19
  282. QUICK START ......................................... Page 20
  283.  
  284. DOS COMMANDS:
  285. CREATE SUBDIRECTORY ................................. Page 22
  286. DOS VERSION ......................................... Page 23
  287. DRIVE READY ......................................... Page 24
  288. GET CURRENT DRIVE ................................... Page 25
  289. GET FILE ATTRIBUTE .................................. Page 26
  290. GET VERIFY FLAG ..................................... Page 27
  291. REMOVE SUBDIRECTORY ................................. Page 28
  292. SET DIRECTORY ....................................... Page 29
  293. SET DRIVE ........................................... Page 30
  294. SET FILE ATTRIBUTE .................................. Page 31
  295. SET VERIFY FLAG ..................................... Page 32
  296.  
  297. EQUIPMENT COMMANDS:
  298. BIOS DATE ........................................... Page 34
  299. CONVENTIONAL MEMORY ................................. Page 35
  300. EXTENDED MEMORY ..................................... Page 36
  301. GAME ADAPTER ........................................ Page 37
  302. MATH COPROCESSOR .................................... Page 38
  303. MICRO CHANNEL ARCHITECTURE .......................... Page 39
  304. NUMBER OF INSTALLED DRIVES .......................... Page 40
  305. PC BUS .............................................. Page 41
  306. PC TYPE PC .......................................... Page 42
  307. PC TYPE XT .......................................... Page 43
  308. PC TYPE AT .......................................... Page 44
  309. PC TYPE PCjr ........................................ Page 45
  310. PC TYPE PC/XT 286 ................................... Page 46
  311. PC TYPE PC CONVERTIBLE .............................. Page 47
  312. PC TYPE PS/2 MODEL 30 ............................... Page 48
  313. PC TYPE PS/2 MODEL 50 ............................... Page 49
  314. PC TYPE PS/2 MODEL 55 ............................... Page 50
  315. PC TYPE PS/2 MODEL 60 ............................... Page 51
  316. PC TYPE PS/2 MODEL 70 ............................... Page 52
  317. PC TYPE PS/2 MODEL 80 ............................... Page 53
  318. PARALLEL PORT ....................................... Page 54
  319. REAL-TIME CLOCK ..................................... Page 55
  320. SERIAL PORT ......................................... Page 56
  321.  
  322.  
  323.  
  324.  
  325.                       TABLE OF CONTENTS
  326.  
  327. KEYBOARD COMMANDS:
  328. CAPS LOCK KEY STATUS ................................ Page 58
  329. INSERT KEY STATUS ................................... Page 59
  330. LEFT SHIFT KEY STATUS ............................... Page 60
  331. NUM LOCK KEY STATUS ................................. Page 61
  332. RIGHT SHIFT KEY STATUS .............................. Page 62
  333. SCROLL LOCK KEY STATUS .............................. Page 63
  334. SET CAPS LOCK KEY OFF ............................... Page 64
  335. SET NUM LOCK KEY OFF ................................ Page 65
  336. SET SCROLL LOCK KEY OFF ............................. Page 66
  337. SET CAPS LOCK KEY ON ................................ Page 67
  338. SET NUM LOCK KEY ON ................................. Page 68
  339. SET SCROLL LOCK KEY ON .............................. Page 69
  340.  
  341. COMMUNICATION COMMANDS:
  342. INITIALIZE COMMUNICATIONS LINE AT 300 BAUD .......... Page 71
  343. INITIALIZE COMMUNICATIONS LINE AT 1200 BAUD ......... Page 72
  344. INITIALIZE COMMUNICATIONS LINE AT 2400 BAUD ......... Page 73
  345. INITIALIZE COMMUNICATIONS LINE AT 4800 BAUD ......... Page 74
  346. INITIALIZE COMMUNICATIONS LINE AT 9600 BAUD ......... Page 75
  347. COM PORT STATUS ..................................... Page 76
  348. COMMUNICATIONS PORT DATA READY STATUS ............... Page 77
  349. COMMUNICATIONS PORT OVERRUN ERROR STATUS ............ Page 78
  350. COMMUNICATIONS PORT PARITY ERROR STATUS ............. Page 79
  351. COMMUNICATIONS PORT FRAMING ERROR STATUS ............ Page 80
  352. COMMUNICATIONS PORT BREAK INTERRUPT STATUS .......... Page 81
  353. COMMUNICATIONS PORT THR STATUS ...................... Page 82
  354. COMMUNICATIONS PORT TSR STATUS ...................... Page 83
  355. COMMUNICATIONS PORT TIME-OUT ERROR STATUS ........... Page 84
  356. INITIALIZE LINE PRINTER ............................. Page 85
  357. LINE PRINTER STATUS ................................. Page 86
  358. MODEM DELTA CLEAR TO SEND STATUS..................... Page 87
  359. MODEM DELTA DATA SET READY STATUS ................... Page 88
  360. MODEM TRAILING EDGE RING DETECTOR STATUS ............ Page 89
  361. MODEM DELTA RECEIVE LINE SIGNAL DETECT STATUS ....... Page 90
  362. MODEM CLEAR TO SEND STATUS .......................... Page 91
  363. MODEM DATA SET READY STATUS ......................... Page 92
  364. MODEM RING INDICATOR STATUS ......................... Page 93
  365. MODEM RECEIVE LINE SIGNAL DETECT STATUS ............. Page 94
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.                        TABLE OF CONTENTS
  380.  
  381. MISCELLANEOUS COMMANDS:
  382. CDROM DRIVER ........................................ Page 96
  383. CDROM VERSION ....................................... Page 97
  384. CURSOR COLUMN POSITION .............................. Page 98
  385. CURSOR ROW POSITION ................................. Page 99
  386. DAY OF THE WEEK ..................................... Page 100
  387. MOUSE DRIVER ........................................ Page 101
  388. MOUSE LANGUAGE ...................................... Page 102
  389. MOUSE TYPE .......................................... Page 103
  390. MOUSE VERSION ....................................... Page 104
  391. NUMBER OR CHARACTER ................................. Page 105
  392. PRINT SCREEN ........................................ Page 106
  393. XMS DRIVER .......................................... Page 107
  394.  
  395. INDEX ............................................... Page 108-109
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.                                 INTRODUCTION
  434.  
  435. dB4LIB is a command library that will allow you to perform low level commands
  436. from the dot prompt and from within your favorite programs (i.e. dBASE IV and
  437. dBASE III PLUS).  Also, dB4LIB version 1.0 commands can be moved from one
  438. flavor of dBASE (i.e.  dBASE IV version 1.1 and dBASE III PLUS version 1.1)
  439. to another without any modification. 
  440.  
  441. Please note that you will see the word dBASE being used throughout this
  442. manual. dBASE refers to dBASE IV and dBASE III PLUS.
  443.  
  444. dB4LIB was developed for the following reasons:
  445.  
  446. (1) To help you support your dBASE application.  For example, if you include
  447. the GETPCENV.PRG program (included on the dB4LIB system disk when you
  448. register) in your application, you can quickly obtain information about your
  449. clients' PC environment.  This should help you in supporting your dBASE
  450. applications when you are talking with your client on the phone.  
  451.  
  452. (2) To help you install your dBASE application.  For example, if you use the
  453. INSTALL.PRG program (included on the dB4LIB system disk when you register) in
  454. your dBASE installation program, you can perform low-level DOS commands in
  455. the background (e.g. MD, CHDIR, etc.).  This will give your installation
  456. program a professional look.
  457.  
  458. (3) To help your dBASE program communicate with your printer.  For example,
  459. an end-user has placed the incorrect baud rate in their config.sys file.  You
  460. can initialize the serial printer with the correct baud rate within your
  461. dBASE application.
  462.  
  463. dB4LIB will not solve all of your problems, but it will give you an edge in
  464. supporting your dBASE programs.
  465.  
  466. You may already have noticed that the examples in this manual are from the
  467. dot prompt.  I did this to show you how easy the dB4LIB commands are to use. 
  468. If you are a beginner to dBASE, performing dB4LIB commands from the dot
  469. prompt or Foxpro command window will be easier to grasp.  The intermediate
  470. and advanced dBASE users can use all of the dB4LIB commands in their
  471. programs.
  472.  
  473. Also, the dB4LIB commands will become very useful to the dBASE user for the
  474. following reasons:
  475.  
  476. (1) When executing DOS commands from the dot prompt or FoxPro command window,
  477. the dBASE RUN command requires additional memory than dB4LIB since it has to
  478. load another DOS command.com file into memory.  If the computer you or your
  479. client is using does not have sufficient memory for the RUN command (this
  480. could be due to your application or the amount of memory installed on the
  481. computer), you will receive the dreaded "Insufficient memory" error message
  482. on your computer screen, and you will not be able to execute your DOS
  483. command.
  484.  
  485.  
  486.  
  487. (2) The dB4LIB commands are written in assembly language - the computer's
  488. language.  Thus they are very fast, much faster than the RUN command, and
  489. take very little memory.  As little as 20 bytes!
  490.  
  491. (3) Most of the dB4LIB commands (e.g. nodrives, mousedrv, mathcopr, xmsdrv,
  492. cursor, printer status, etc.) are not accessible from the dBASE RUN command.
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.                HARDWARE/SOFTWARE REQUIREMENTS & PACKAGE CONTENTS
  542.  
  543. In order to use dB4LIB, you must have an IBM PC or 100% compatible, 640k of
  544. RAM, a 3.5" or 5.25" diskette drive, hard disk, dBASE IV, dBASE III PLUS, and
  545. MS-DOS version 3.1 or higher (some of the dB4LIB commands will work with DOS
  546. version 2.1.  When Microsoft enhanced MS-DOS in later versions, e.g.
  547. Microsoft CD-ROM extensions, dB4LIB requires MS-DOS 3.1 or greater).
  548.  
  549. The dB4LIB software package includes the following three items:
  550.  
  551. Command library that includes the binary files (e.g. nodrives.bin) to be
  552. loaded and called into your dBASE applications.
  553.  
  554. ASCII manual.
  555.  
  556. Registration form.
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.      INSTALLING dB4LIB for both 30-day trial and registered versions
  596.  
  597. To install dB4LIB on your hard disk, perform the following steps:
  598.  
  599. 1.  Create a subdirectory on your hard disk with the name dB4LIB.
  600.  
  601. For example, we'll assume you'll be creating a subdirectory on drive C on
  602. your hard disk.  Type the following ->
  603.  
  604. MD dB4LIB
  605.  
  606. and press the return key.
  607.  
  608. 2.  Place the dB4LIB diskette into your floppy diskette drive, and then type
  609. the letter of the drive where you just placed the dB4LIB diskette.
  610.  
  611. For example, if you placed the dB4LIB diskette into drive A, type the
  612. following ->
  613.  
  614. A:
  615.  
  616. and press the return key.
  617.  
  618. 3.  Copy all of the dB4LIB program files from drive A into the dB4LIB
  619. subdirectory.
  620.  
  621. For example, type the following ->
  622.  
  623. cd\prg
  624.  
  625. copy *.prg c:\dB4LIB
  626.  
  627. and press the return key.
  628.  
  629. 4.  Copy all of the dB4LIB command files from drive A into the dB4LIB
  630. subdirectory.
  631.  
  632. For example, type the following ->
  633.  
  634. cd\bin
  635.  
  636. copy *.bin c:\dB4LIB
  637.  
  638. and press the return key.
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649. 5.  Copy all of the dB4LIB source code files from drive A into the dB4LIB
  650. subdirectory.
  651.  
  652. For example, type the following ->
  653.  
  654. cd\asm
  655.  
  656. copy *.asm c:\dB4LIB
  657.  
  658. and press the return key.
  659.  
  660. That's all there is to installing dB4LIB on your hard disk.
  661.  
  662. Please refer to your MS-DOS manual for questions using the CD, MD, and COPY
  663. commands.
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.                     REGISTRATION & SOFTWARE SUPPORT
  704.  
  705. PLEASE REGISTER YOUR SOFTWARE IMMEDIATELY BY COMPLETING THE
  706. REGISTRATION FORM ON THE NEXT PAGE.  OTHERWISE, YOU WILL NOT
  707. RECEIVE TELEPHONE SOFTWARE SUPPORT FOR dB4LIB.  BY REGISTRATING YOUR
  708. SOFTWARE, YOU WILL RECEIVE THE ASSEMBLY LANGUAGE SOURCE CODE FOR ALL dBASE
  709. COMMANDS, SAMPLE dBASE PROGRAM FILES (E.G. GETPCENV.PRG), A PRINTED MANUAL,
  710. AND A 16 PAGE TUTORIAL SHOWING YOU HOW TO CREATE A dBASE COMMAND USING THE
  711. MICROSOFT MACRO ASSEMBLER AND DOS'S DEBUG!
  712.  
  713. Once your registration card has been received, you will receive 30
  714. days free (you do pay for the phone call) software support, and my
  715. telephone number.  During the 30 days of free software support, you
  716. must leave a phone number where I can contact you collect. 
  717.  
  718. After the 30 days have expired, you can purchase telephone software
  719. support.  Please contact me for current rates.  I look forward to
  720. answering any questions you may have using dB4LIB.  Please understand
  721. that I cannot answer questions concerning how to program in dBASE or
  722. assembly language.  There are plenty of good programming books that
  723. can be purchased.
  724.  
  725. Finally, please send the registration form along with a check for
  726. $45 (U.S. orders only, international orders are $65) when the 30 day trial
  727. period expires.  If you use any of the Db4LIB commands commercially (e.g.
  728. consulting, software development, software testing, etc.) you must register
  729. Db4LIB immediately.
  730.  
  731. It took hundreds of hours to write this library.  Also, this
  732. library would cost from two to four times the registration fee if
  733. it was sold commercially.  Your understanding is deeply
  734. appreciated.
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757. Mail check for $45 To:             Sparkle Software
  758.                                    Mike Fieldman
  759.                                    610 E. Bell Rd.
  760.                                    Suite #2136
  761.                                    Phoenix, AZ 85022
  762.  
  763. (International orders are $65)
  764.  
  765. Company:____________________________________________
  766. Name:_______________________________________________
  767. First Name:__________________ Last Name:____________________
  768. Street Address:_____________________________________________
  769.                _____________________________________________
  770. City:___________________ State:__ Zip Code:_________________
  771. Day time phone number:________________________
  772. Evening phone number:_________________________
  773. dBASE language you are currently using (please check):
  774. dBASE IV___ dBASE III PLUS___
  775. dB4LIB version:___
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.                         Using dB4LIB in your applications
  812.  
  813. You can execute the dB4LIB commands from the dot prompt, FoxPro command
  814. window, and from within your dBASE programs.  This is a summary for using the
  815. dB4LIB commands included on the dB4LIB diskette.  Please refer to each
  816. individual command located in this manual for specific information.
  817.  
  818. In order to use dB4LIB, you must have dBASE loaded in memory and be your
  819. foreground (active) application.
  820.  
  821. I will use the NODRIVES dB4LIB command for an example.  If you wanted to
  822. determine the number of logical drives installed on an IBM PC, you would
  823. perform the following steps from the dot prompt or FoxPro command window:
  824.  
  825. . load c:\dB4LIB\nodrives
  826. . dB4LIB = "NODRIVES"
  827. . call nodrives with dB4LIB
  828. . ?asc(substr(dB4LIB,1,1))
  829. 6
  830. . release module nodrives
  831.  
  832. there are six drives installed on this computer system (drives A, B, C, D, E,
  833. and F).  Let's examine each dot prompt command in detail.
  834.  
  835. (1) We loaded the command NODRIVES.bin into memory.  Notice you do not use
  836. the extension (.bin) of the file you are loading.
  837.  
  838. (2) We created a parameter, NODRIVES, that we will be sending to the NODRIVES
  839. command.  ONLY SEND THE PARAMETER SPECIFIED IN EACH dB4LIB COMMAND, I.E. DO
  840. NOT SEND A PARAMETER OTHER THAN WHAT IS ASKED OF YOU FOR EACH dB4LIB COMMAND.
  841.  
  842. (3) We called the NODRIVES command with the parameter "NODRIVES" (You can
  843. pass character parameters to dB4LIB in either lower or upper case).  
  844.  
  845. (4) We determined the number of installed drives by converting the result to
  846. an ASCII code. 
  847.  
  848. (5) Finally, we released the command nodrives.bin from memory.  AFTER YOU
  849. LOAD AND CALL THE COMMAND YOU WANT TO USE, ALWAYS RELEASE IT FROM MEMORY.
  850.  
  851. When a dB4LIB command returns a value, you may have to convert the value to
  852. an ASCII code using just two dBASE functions - SUBSTR and ASC.  The SUBSTR
  853. and ASC functions are included with your dBASE product (i.e. FoxBASE + and
  854. FoxPro).
  855.  
  856. The SUBSTR function returns a specified number of characters from a string. 
  857. For example, the string that was passed to the NODRIVES command was
  858. "NODRIVES."  Since the NODRIVES command returns the value (number of
  859. installed drives) in the first letter of the string "NODRIVES" (in this case
  860. the letter N of NODRIVES), all we have to do is obtain the value of the first
  861. letter of the string.
  862.  
  863.  
  864.  
  865. . load nodrives
  866. . dB4LIB = "NODRIVES"
  867. . call nodrives with dB4LIB
  868. . ?substr(dB4LIB,1,1)
  869. . HERE YOU WOULD SEE THE ASCII CODE "SPADE" SYMBOL
  870.  
  871. We will convert the ASCII code "SPADE" symbol to a number to determine the
  872. number of installed drives.  We'll do this using the ASC function.
  873.  
  874. . ?asc(substr(dB4LIB,1,1))
  875. 6
  876. . release module nodrives
  877.  
  878. If this seems complicated - DON'T WORRY!  Just follow the instructions for
  879. each command and you'll do just fine.  Please refer to your dBASE manual for
  880. questions using the SUBSTR and ASC functions.
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.                        EXAMPLES for registration version
  920.  
  921. I included the following dBASE programs on the registered dB4LIB diskette:
  922.  
  923. GETPCENV.PRG is a simple dBASE program that returns information from your PC
  924. environment.  You will want to modify this file to suit your needs.  One use
  925. of this routine would be to include it in a menu of your application to
  926. better solve telephone support calls (I know that this will not solve all
  927. problems, but at least it will give you a feel for the end users
  928. environment).  Then you could ask the end user some basic questions regarding
  929. his/her PC configuration.  The advantage to this is staying in your dBASE
  930. application without having to shut it down and have the user perform DOS
  931. commands which he/she may not know.
  932.  
  933. INSTALL.PRG is a simple installation dBASE program.  Again, You will want to
  934. modify this file to suit your needs.  This routine can make installing your
  935. dBASE application easier.
  936.  
  937. COMMANDS.PRG is a dBASE program that includes an example for each command in
  938. this manual.  I did this so you can "cut and paste" the commands you need
  939. into your dBASE source code.
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.                                   IMPORTANT!
  974.  
  975. 1.  MAKE SURE YOU RELEASE A dB4LIB COMMAND FROM MEMORY USING THE dBASE
  976. "RELEASE MODULE" COMMAND AFTER YOU HAVE LOADED AND CALLED IT.  THIS WILL FREE
  977. UP MEMORY AND YOU WON'T EXCEED THE MAXIMUM NUMBER OF ALLOWED LOADS IMPOSED BY
  978. dBASE.
  979.  
  980. Example:                       . load c:\dB4LIB\mousedrv
  981.                                . dB4LIB = "MOUSE"
  982.                                . call mousedrv with dB4LIB
  983.                                . ?substr(dB4LIB,1,1) = "Y"
  984.                                .T.
  985.                     ─────────> . rele modu mousedrv
  986.  
  987. 2.  NEVER SEND A PARAMETER OTHER THAN WHAT IS SPECIFIED IN THE dB4LIB
  988. COMMAND.  OTHERWISE, YOU COULD GET UNWANTED AND UNPREDICTABLE RESULTS.  BELOW
  989. IS THE INCORRECT WAY TO PASS THE PARAMETER "MOUSE" USING THE MOUSE DRIVER
  990. dB4LIB COMMAND.
  991.  
  992. Example:                       . load c:\dB4LIB\mousedrv
  993.                     ─────────> . dB4LIB = "MICKEYMOUSE"
  994.                                . call mousedrv with dB4LIB
  995.                                . ?substr(dB4LIB,1,1) = "Y"
  996.                                .T.
  997.                                . rele modu mousedrv
  998.  
  999. Below is the CORRECT way to pass the parameter "MOUSE" using the mouse driver
  1000. dB4LIB command.
  1001.  
  1002. Example:                       . load c:\dB4LIB\mousedrv
  1003.                     ─────────> . dB4LIB = "MOUSE"
  1004.                                . call mousedrv with dB4LIB
  1005.                                . ?substr(dB4LIB,1,1) = "Y"
  1006.                                .T.
  1007.                                . rele modu mousedrv
  1008.  
  1009. Please refer to your dBASE manual for questions using the LOAD, CALL, and
  1010. RELEASE MODULE commands.
  1011.  
  1012. 3.  IN A MAINFRAME CLIMATE, YOU HAVE BOTH A TEST AND A PRODUCTION WORKING
  1013. ENVIRONMENT.  MAKE SURE YOU USE THE TEST ENVIRONMENT (I.E. USE ONLY A COPY OF
  1014. YOUR DATA) WHEN FIRST USING ANY OR ALL OF THE dB4LIB COMMANDS.
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.                          QUICK START for registered version
  1028.  
  1029. If you have installed dB4LIB correctly to drive "C" of your hard disk, you
  1030. can execute the GETPCENV.PRG program that came on your dB4LIB system disk. 
  1031. Just type "do getpcenv" from either the dot prompt or from within the FoxPro
  1032. command window.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.                                      DOS COMMANDS
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.                                         CREATDIR
  1136.  
  1137.  
  1138. Syntax:                        CREATDIR
  1139.  
  1140. Use:                           To create a subdirectory.
  1141.  
  1142. Parameters:                    The directory you want to create (e.g. C:\BACKUP).
  1143.  
  1144. Returns:                       The first character in the sending parameter will
  1145.                                have a "Y" (i.e. true) if the subdirectory was
  1146.                                created, and a "N" if the subdirectory could not be
  1147.                                created (e.g. if it already exists).  If you did not
  1148.                                pass the parameter correctly (e.g. dB4LIB =
  1149.                                "\backup"), your sending parameter will be
  1150.                                unchanged.
  1151.  
  1152. Example:                       . load c:\dB4LIB\creatdir
  1153.                                . dB4LIB = "C:\BACKUP"
  1154.                                . call creatdir with dB4LIB
  1155.                                . ?substr(dB4LIB,1,1) = "Y"
  1156.                                .T.
  1157.                                . rele modu creatdir
  1158.  
  1159.                                From this example, the subdirectory C:\BACKUP was
  1160.                                created.
  1161.  
  1162. Example:                       if substr(dB4LIB,1,1) = "Y"
  1163.                                   copy to c:\backup\filecopy
  1164.                                endif
  1165.  
  1166.                                From the above example, you could save information
  1167.                                to a backup subdirectory for archives.
  1168.  
  1169.  
  1170. See:                           REMOVDIR, SETDIR
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.                                         DOSVERS
  1190.  
  1191.  
  1192. Syntax:                        DOSVERS
  1193.  
  1194. Use:                           To determine the DOS version.
  1195.  
  1196. Parameters:                    DOS
  1197.  
  1198. Returns:                       The first character in the sending parameter will
  1199.                                have the DOS major version number, and the second
  1200.                                character in the sending parameter will have the DOS
  1201.                                minor version number.  If you did not pass the
  1202.                                parameter correctly (e.g. dB4LIB = "ZOS"), your
  1203.                                sending parameter will be unchanged.
  1204.  
  1205. Example:                       . load c:\dB4LIB\dosvers
  1206.                                . dB4LIB = "DOS"
  1207.                                . call dosvers with dB4LIB
  1208.                                . ?asc(substr(dB4LIB,1,1))
  1209.                                3
  1210.                                . ?asc(substr(dB4LIB,2,1))
  1211.                                30
  1212.                                . rele modu dosvers
  1213.  
  1214.                                From this example, the DOS version is 3.30.  Your
  1215.                                application may require a certain DOS version, i.e.
  1216.                                3.30 or higher.
  1217.  
  1218. Example:                       load dosvers
  1219.                                dB4LIB = "DOS"
  1220.                                call dosvers with dB4LIB
  1221.                                IF asc(substr(dB4LIB,1,1)) < 3
  1222.                                   @ 3,0 Say "Application requires DOS 3.3 or"
  1223.                                   @ 4,0 Say "greater.  Press any key to exit."
  1224.                                   Wait ""
  1225.                                   return
  1226.                                Endif
  1227.                                IF asc(substr(dB4LIB,1,1)) = 3 .and.
  1228.                                asc(substr(dB4LIB,2,1)) < 30
  1229.                                   @ 3,0 Say "Application requires DOS 3.3 or"
  1230.                                   @ 4,0 Say "greater.  Press any key to exit."
  1231.                                   Wait ""
  1232.                                   return
  1233.                                Endif
  1234.  
  1235.                                If your application needs more than 20 file handles
  1236.                                open at one time, make sure the DOS version is
  1237.                                greater than or equal to 3.30.
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.                                         DRIVERDY
  1244.  
  1245.  
  1246. Syntax:                        DRIVERDY
  1247.  
  1248. Use:                           To see if floppy disk drive A or B is ready.
  1249.  
  1250. Parameters:                    Drive letter (A or B).
  1251.  
  1252. Returns:                       The first character in the sending parameter will
  1253.                                have a "Y" if the floppy drive is ready, a "N" if
  1254.                                the floppy drive is not ready.  If you did not pass
  1255.                                the parameter correctly (e.g. dB4LIB = "/"), your
  1256.                                sending parameter will be unchanged.
  1257.  
  1258. Example:                       . load c:\dB4LIB\driverdy
  1259.                                . dB4LIB = "B"
  1260.                                . call driverdy with dB4LIB
  1261.                                . ?substr(dB4LIB,1,1) = "Y"
  1262.                                .T.
  1263.                                . rele modu driverdy
  1264.                                
  1265.                                From this example, drive B is ready for retrieval 
  1266.                                or saving of data.
  1267.  
  1268. See:                           FIXEDRRV, GETDRIVE, AND SETDRIVE
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.                                         GETDRIVE
  1298.  
  1299.  
  1300. Syntax:                        GETDRIVE
  1301.  
  1302. Use:                           To determine the current drive.
  1303.  
  1304. Parameters:                    GETDRIVE
  1305.  
  1306. Returns:                       The first character in the sending parameter will
  1307.                                have the current drive letter (A, B, C, etc.).  If
  1308.                                you did not pass the parameter correctly (e.g.
  1309.                                dB4LIB = "ZETDRIVE"), your sending parameter will
  1310.                                be unchanged.
  1311.  
  1312. Example:                       . load c:\dB4LIB\getdrive
  1313.                                . dB4LIB = "GETDRIVE"
  1314.                                . call getdrive with dB4LIB
  1315.                                . ?substr(dB4LIB,1,1)
  1316.                                C
  1317.                                . rele modu getdrive
  1318.                                
  1319.                                From this example, the current drive is C. 
  1320.  
  1321. See:                           SETDRIVE
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.                                         GETATTR
  1352.  
  1353.  
  1354. Syntax:                        GETATTR
  1355.  
  1356. Use:                           To determine the file attribute.
  1357.  
  1358. Parameters:                    The subdirectory and the file name (e.g.
  1359.                                \dBASE\dBASE.EXE).  Do not include the drive
  1360.                                letter and the colon, but you must include the
  1361.                                backslash "\".
  1362.  
  1363. Returns:                       The first character in the sending parameter will
  1364.                                have the file attribute.  If you did not pass the
  1365.                                parameter correctly (e.g. dB4LIB = "\dBASE\"),
  1366.                                your sending parameter will be unchanged.
  1367.  
  1368. Example:                       . load c:\dB4LIB\getattr
  1369.                                . dB4LIB = "\IO.SYS"
  1370.                                . call getattr with dB4LIB
  1371.                                . ?asc(substr(dB4LIB,1,1))
  1372.                                39
  1373.                                . rele modu getattr
  1374.                                
  1375.                                From this example, the file attribute is archive,
  1376.                                system, hidden, and read-only.  Below is a list of
  1377.                                all possible outcomes:
  1378.  
  1379.                                Archive, system, hidden, read-only = 39
  1380.                                Archive                            = 32
  1381.                                Archive, system                    = 36
  1382.                                Archive, system, hidden            = 38
  1383.                                Archive, hidden                    = 34
  1384.                                Archive, read-only                 = 33
  1385.                                System                             = 4
  1386.                                System, hidden                     = 6
  1387.                                System, read-only                  = 5
  1388.                                Hidden                             = 2
  1389.                                Hidden, read-only                  = 3
  1390.                                Read-only                          = 1
  1391.  
  1392.                                No attributes set                  = 0
  1393.  
  1394. See:                           SETATTR
  1395.  
  1396. Notes:                         You can only obtain the file attribute from the
  1397.                                current drive.  For example, you are in drive C, and
  1398.                                you want to obtain the file attribute for a file on
  1399.                                drive D.  Use the SETDRIVE command to set the
  1400.                                current drive to D, and then use the GETATTR
  1401.                                command.
  1402.  
  1403.  
  1404.  
  1405.                                         GETVERFY
  1406.  
  1407.  
  1408. Syntax:                        GETVERFY
  1409.  
  1410. Use:                           To determine if the verify flag is on or off.
  1411.  
  1412. Parameters:                    GETVERIFY
  1413.  
  1414. Returns:                       The first character in the sending parameter will
  1415.                                have a "Y" if verify is on, a "N" if verify is off. 
  1416.                                If you did not pass the parameter correctly
  1417.                                (e.g. dB4LIB = "ZETVERIFY"), your sending
  1418.                                parameter will be unchanged.
  1419.  
  1420. Example:                       . load c:\dB4LIB\getverfy
  1421.                                . dB4LIB = "GETVERIFY"
  1422.                                . call getverfy with dB4LIB
  1423.                                . ?substr(dB4LIB,1,1) = "Y"
  1424.                                .T.
  1425.                                . rele modu getverfy
  1426.                                
  1427.                                From this example, verify is on.  Having verify
  1428.                                on can dramatically slow down your dBASE
  1429.                                application since DOS performs a verify operation
  1430.                                after each disk write to ensure that the data has
  1431.                                been recorded correctly.
  1432.  
  1433. See:                           SETVERFY
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.                                         REMOVDIR
  1460.  
  1461.  
  1462. Syntax:                        REMOVDIR
  1463.  
  1464. Use:                           To remove a subdirectory.
  1465.  
  1466. Parameters:                    The directory you want to remove (e.g. C:\BACKUP).
  1467.  
  1468. Returns:                       The first character in the sending parameter will
  1469.                                have a "Y" (i.e. true) if the subdirectory was
  1470.                                removed, and a "N" if the subdirectory could not be
  1471.                                removed (e.g. if it already was removed). If you did
  1472.                                not pass the parameter correctly (e.g. dB4LIB =
  1473.                                "\backup"), your sending parameter will be
  1474.                                unchanged.
  1475.  
  1476. Example:                       . load c:\dB4LIB\removdir
  1477.                                . dB4LIB = "C:\BACKUP"
  1478.                                . call removdir with dB4LIB
  1479.                                . ?substr(dB4LIB,1,1) = "Y"
  1480.                                .T.
  1481.                                . rele modu removdir
  1482.  
  1483.                                From this example, the subdirectory C:\BACKUP was
  1484.                                removed.
  1485.  
  1486. See:                           CREATDIR, SETDIR
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.                                         SETDIR
  1514.  
  1515.  
  1516. Syntax:                        SETDIR
  1517.  
  1518. Use:                           To set a subdirectory.
  1519.  
  1520. Parameters:                    The directory you want to set (e.g. C:\BACKUP).
  1521.  
  1522. Returns:                       The first character in the sending parameter will
  1523.                                have a "Y" (i.e. true) if the subdirectory was set,
  1524.                                and a "N" if the subdirectory was not set. If you
  1525.                                did not pass the parameter correctly (e.g. dB4LIB
  1526.                                = "\backup"), your sending parameter will be
  1527.                                unchanged.
  1528.  
  1529. Example:                       . load c:\dB4LIB\setdir
  1530.                                . dB4LIB = "C:\BACKUP"
  1531.                                . call setdir with dB4LIB
  1532.                                . ?substr(dB4LIB,1,1) = "Y"
  1533.                                .T.
  1534.                                . rele modu setdir
  1535.  
  1536.                                From this example, the subdirectory was set to
  1537.                                c"\backup."
  1538.  
  1539. Example:                       if substr(dB4LIB,1,1) = "Y"
  1540.                                   copy to c:\backup\filecopy
  1541.                                endif
  1542.  
  1543.                                From the above example, you could first verify that
  1544.                                a subdirectory exists.  If it does, you could then
  1545.                                copy information to it.
  1546.  
  1547. Notes:                         Please note that when you use the SETDIR dB4LIB
  1548.                                command, you will make that subdirectory the current
  1549.                                subdirectory.
  1550.  
  1551. See:                           CREATDIR, REMOVDIR
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.                                         SETDRIVE
  1568.  
  1569.  
  1570. Syntax:                        SETDRIVE
  1571.  
  1572. Use:                           To set a disk drive.
  1573.  
  1574. Parameters:                    Drive letter (A=0, B=1, C=2,..., Z=25).
  1575.  
  1576. Returns:                       The first character in the sending parameter will
  1577.                                have a "Y" if the drive number was set, a "N" if the
  1578.                                drive number was not set.  If you did not pass the
  1579.                                parameter correctly (e.g. dB4LIB = "/"), your
  1580.                                sending parameter will be unchanged.
  1581.  
  1582. Example:                       . load c:\dB4LIB\setdrive
  1583.                                . dB4LIB = "B"
  1584.                                . call setdrive with dB4LIB
  1585.                                . ?substr(dB4LIB,1,1) = "Y"
  1586.                                .T.
  1587.                                . rele modu setdrive
  1588.                                
  1589.                                From this example, the drive was set to B. 
  1590.  
  1591. See:                           GETDRIVE
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.                                         SETATTR
  1622.  
  1623.  
  1624. Syntax:                        SETATTR
  1625.  
  1626. Use:                           To set the file attribute.
  1627.  
  1628. Parameters:                    The subdirectory, the file name, and the file
  1629.                                attribute (e.g. \dBASE\dBASE.EXE,!).  You do not
  1630.                                include the drive letter, but you must include the
  1631.                                backslash "\".
  1632.  
  1633. Returns:                       The first character in the sending parameter will
  1634.                                have a "Y" if the file attribute was set, a "N" if
  1635.                                the file attribute was not set.  If you did not pass
  1636.                                the parameter correctly (e.g. dB4LIB =
  1637.                                "\dBASE\"), your sending parameter will be
  1638.                                unchanged.
  1639.  
  1640. Example:                       . load c:\dB4LIB\setattr
  1641.                                . dB4LIB = "\dBASE\MIKE.TXT,!"
  1642.                                . call setattr with dB4LIB
  1643.                                . ?substr(dB4LIB,1,1) = "Y"
  1644.                                .T.
  1645.                                . rele modu setattr
  1646.                                
  1647.                                From this example, the file attribute was set to
  1648.                                archive and read-only.  Below is a list of
  1649.                                parameters to use in setting file attributes.
  1650.  
  1651.                                Archive, system, hidden, read-only = '
  1652.                                Archive, system, hidden            = &
  1653.                                Archive, system                    = $            
  1654.                                Archive, read-only                 = !
  1655.                                Archive, hidden                    = #
  1656.                                Archive                            = space        
  1657.                                System, hidden                     = 6
  1658.                                System, read-only                  = 5
  1659.                                System                             = 4
  1660.                                Hidden, read-only                  = 3            
  1661.                                Hidden                             = 2
  1662.                                Read-only                          = 1
  1663.  
  1664.                                When setting just the archive file attribute, use 
  1665.                                a space.  For example: 
  1666.                                . dB4LIB = "\dBASE\MIKE.TXT, "
  1667.  
  1668. See:                           GETATTR
  1669.  
  1670. Notes:                         You can only set the file attribute from the current
  1671.                                drive.  For example, you are in drive C, and you
  1672.                                want to set the file attribute for a file on drive
  1673.                                D.  Use the SETDRIVE command to set the current
  1674.                                drive to D, and then use the SETATTR command.
  1675.                                         SETVERFY
  1676.  
  1677.  
  1678. Syntax:                        SETVERFY
  1679.  
  1680. Use:                           To set the verify flag on or off.
  1681.  
  1682. Parameters:                    1 or 0.  1 to set on, 0 to set off.
  1683.  
  1684. Returns:                       The first character in the sending parameter will
  1685.                                have a "Y" if verify was set on, a "Y" if verify was
  1686.                                set off.  If you did not pass the parameter
  1687.                                correctly (e.g. dB4LIB = "Z"), your sending
  1688.                                parameter will be unchanged.
  1689.  
  1690. Example:                       . load c:\dB4LIB\setverfy
  1691.                                . dB4LIB = "0"
  1692.                                . call setverfy with dB4LIB
  1693.                                . ?substr(dB4LIB,1,1) = "Y"
  1694.                                .T.
  1695.                                . rele modu setverfy
  1696.                                
  1697.                                From this example, verify was successfully set to
  1698.                                off.
  1699.  
  1700. See:                           GETVERFY
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.                                    EQUIPMENT COMMANDS
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.                                         BIOSDATE
  1784.  
  1785.  
  1786. Syntax:                        BIOSDATE
  1787.  
  1788. Use:                           To determine the date of the ROM BIOS.
  1789.  
  1790. Parameters:                    BIOSDATE
  1791.  
  1792. Returns:                       The first eight characters in the dB4LIB parameter
  1793.                                will have the date of the ROM BIOS.  If you did not
  1794.                                pass the parameter correctly (e.g. dB4LIB =       
  1795.                                "ZIOSDATE"), your sending parameter will be
  1796.                                unchanged.
  1797.  
  1798. Example:                       . load c:\dB4LIB\biosdate
  1799.                                . dB4LIB = "BIOSDATE"
  1800.                                . call biosdate with dB4LIB
  1801.                                . ?dB4LIB
  1802.                                06/26/89
  1803.                                . rele modu biosdate
  1804.                                                                 
  1805.                                From this example, the date of the ROM BIOS is
  1806.                                June 26, 1989.
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.                                         CONVMEM
  1838.  
  1839.  
  1840. Syntax:                        CONVMEM
  1841.  
  1842. Use:                           To determine the amount of installed conventional
  1843.                                memory.
  1844.  
  1845. Parameters:                    CONV
  1846.  
  1847. Returns:                       The first three characters in the sending parameter
  1848.                                will have the amount of conventional memory       
  1849.                                installed on the computer system.  If you did not
  1850.                                pass the parameter correctly (e.g. dB4LIB =
  1851.                                "ZONV"), your sending parameter will be unchanged.
  1852.  
  1853. Example:                       . load c:\dB4LIB\convmem
  1854.                                . dB4LIB = "CONV"
  1855.                                . call convmem with dB4LIB
  1856.                                . ?substr(dB4LIB,1,3)
  1857.                                640
  1858.                                . rele modu convmem
  1859.  
  1860.                                From this example, there is 640K of conventional
  1861.                                memory installed on the computer system.
  1862.  
  1863. Example:                       if val(substr(dB4LIB,1,3) <> 640
  1864.                                   @ 1,0 Say "Error!  Need 640K of conventional"
  1865.                                   @ 2,0 Say "memory to load application." 
  1866.                                   @ 3,0 Say "program."
  1867.                                endif
  1868.  
  1869.                                If your application requires 640K of conventional
  1870.                                memory, first determine the amount of installed
  1871.                                conventional memory before loading your program.
  1872.  
  1873. See:                           EXTMEM
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.                                         EXTMEM
  1892.  
  1893.  
  1894. Syntax:                        EXTMEM
  1895.  
  1896. Use:                           To determine the amount of extended memory.
  1897.  
  1898. Parameters:                    EXTMEM
  1899.  
  1900. Returns:                       The first five characters in the sending parameter
  1901.                                will have the amount of extended memory installed 
  1902.                                on the computer system.  If you did not pass the
  1903.                                parameter correctly (e.g. dB4LIB = "ZXTMEM"), your
  1904.                                sending parameter will be unchanged.
  1905.  
  1906. Example:                       . load c:\dB4LIB\extmem
  1907.                                . dB4LIB = "EXTMEM"
  1908.                                . call extmem with dB4LIB
  1909.                                . ?RTRIM(dB4LIB)
  1910.                                3072
  1911.                                . rele modu extmem
  1912.  
  1913.                                From this example, there is 3072K of extended
  1914.                                memory installed on the computer system.  Notice the
  1915.                                dBASE function RTRIM being used here to remove any
  1916.                                trailing spaces.
  1917.  
  1918. See:                           CONVMEM
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.                                         GAMEADAP
  1946.  
  1947.  
  1948. Syntax:                        GAMEADAP
  1949.  
  1950. Use:                           To determine if a game adapter is installed.
  1951.  
  1952. Parameters:                    GAME
  1953.  
  1954. Returns:                       The first character in the sending parameter will
  1955.                                have a "Y" if a game adapter is installed, a "N" if
  1956.                                it does not exist. If you did not pass the parameter
  1957.                                correctly (e.g. dB4LIB = "ZAME"), your sending
  1958.                                parameter will be unchanged.
  1959.  
  1960. Example:                       . load c:\dB4LIB\gameadap
  1961.                                . dB4LIB = "GAME"
  1962.                                . call gameadap with dB4LIB
  1963.                                . ?substr(dB4LIB,1,1) = "Y"
  1964.                                .T.
  1965.                                . rele modu gameadap
  1966.                                
  1967.                                From this example, a game adapter is installed.
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.                                         MATHCOPR
  2000.  
  2001.  
  2002. Syntax:                        MATHCOPR
  2003.  
  2004. Use:                           To determine if a math coprocessor is present.
  2005.  
  2006. Parameters:                    MATH
  2007.  
  2008. Returns:                       The first character in the sending parameter will
  2009.                                have a "Y" if a math coprocessor exists, a "N" if 
  2010.                                it does not exist. If you did not pass the parameter
  2011.                                correctly (e.g. dB4LIB = "ZATH"), your sending
  2012.                                parameter will be unchanged.
  2013.  
  2014. Example:                       . load c:\dB4LIB\mathcopr
  2015.                                . dB4LIB = "MATH"
  2016.                                . call mathcopr with dB4LIB
  2017.                                . ?substr(dB4LIB,1,1) = "Y"
  2018.                                .T.
  2019.                                . rele modu mathcopr
  2020.                                
  2021.                                From this example, a math coprocessor is installed.
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.                                         MCA
  2054.  
  2055.  
  2056. Syntax:                        MCA
  2057.  
  2058. Use:                           To determine if Micro Channel Architecture.
  2059.  
  2060. Parameters:                    MCA
  2061.  
  2062. Returns:                       The first character in the sending parameter will
  2063.                                have a "Y" if a Micro Channel Architecture is
  2064.                                present, a "N" if it is not present. If you did not
  2065.                                pass the parameter correctly (e.g. dB4LIB =
  2066.                                "ZCA"), your sending parameter will be unchanged.
  2067.  
  2068. Example:                       . load c:\dB4LIB\mca
  2069.                                . dB4LIB = "MCA"
  2070.                                . call mca with dB4LIB
  2071.                                . ?substr(dB4LIB,1,1) = "Y"
  2072.                                .T.
  2073.                                . rele modu mca
  2074.                                
  2075.                                From this example, Micro Channel Architecture is
  2076.                                present.
  2077.  
  2078. See:                           PCBUS
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.                                         NODRIVES
  2108.  
  2109.  
  2110. Syntax:                        NODRIVES
  2111.  
  2112. Use:                           To determine the number of installed disk drives. 
  2113.  
  2114. Parameters:                    NODRIVES
  2115.  
  2116. Returns:                       The first character in the sending parameter will
  2117.                                have the number of disk drives installed.  If you
  2118.                                did not pass the parameter correctly (e.g. dB4LIB
  2119.                                = "ZODRIVES"), your sending parameter will be
  2120.                                unchanged.
  2121.  
  2122. Example:                       . load c:\dB4LIB\nodrives
  2123.                                . dB4LIB = "NODRIVES"
  2124.                                . call nodrives with dB4LIB
  2125.                                . ?asc(substr(dB4LIB,1,1))
  2126.                                26
  2127.                                . rele modu nodrives
  2128.                                                                 
  2129.                                From this example, there are 26 installed disk
  2130.                                drives.  These disk drives could be two floppy
  2131.                                drives A and B; a hard disk partitioned into
  2132.                                three drives C, D, and E; and ram disks (F through
  2133.                                Z).
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.                                         PCBUS
  2162.  
  2163.  
  2164. Syntax:                        PCBUS
  2165.  
  2166. Use:                           To determine if PC bus I/O channel.
  2167.  
  2168. Parameters:                    PCBUS
  2169.  
  2170. Returns:                       The first character in the sending parameter will
  2171.                                have a "Y" if a PC bus I/O channel is present, a "N"
  2172.                                if it is not present. If you did not pass the
  2173.                                parameter correctly (e.g. dB4LIB = "ZCBUS"), your
  2174.                                sending parameter will be unchanged.
  2175.  
  2176. Example:                       . load c:\dB4LIB\pcbus
  2177.                                . dB4LIB = "PCBUS"
  2178.                                . call pcbus with dB4LIB
  2179.                                . ?substr(dB4LIB,1,1) = "Y"
  2180.                                .T.
  2181.                                . rele modu pcbus
  2182.                                
  2183.                                From this example, PC bus I/O channel is present.
  2184.  
  2185. See:                           MCA
  2186.  
  2187. Notes:                         This command will not work on the PC/AT dated before
  2188.                                6/10/85.
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.                                         PC
  2216.  
  2217.  
  2218. Syntax:                        PC
  2219.  
  2220. Use:                           To determine if PC.
  2221.  
  2222. Parameters:                    PC
  2223.  
  2224. Returns:                       The first character in the sending parameter will
  2225.                                have a "Y" if PC, a "N" if it is not a PC. If you
  2226.                                did not pass the parameter correctly (e.g. dB4LIB
  2227.                                = "ZC"), your sending parameter will be unchanged.
  2228.  
  2229. Example:                       . load c:\dB4LIB\pc
  2230.                                . dB4LIB = "PC"
  2231.                                . call pc with dB4LIB
  2232.                                . ?substr(dB4LIB,1,1) = "Y"
  2233.                                .T.
  2234.                                . rele modu pc
  2235.                                                                 
  2236.                                From this example, it is a true PC.
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.                                         PCXT
  2270.  
  2271.  
  2272. Syntax:                        PCXT
  2273.  
  2274. Use:                           To determine if PC/XT.
  2275.  
  2276. Parameters:                    PCXT
  2277.  
  2278. Returns:                       The first character in the sending parameter will
  2279.                                have a "Y" if PC/XT, a "N" if it is not a PC/XT. If
  2280.                                you did not pass the parameter correctly (e.g.
  2281.                                dB4LIB = "ZCXT"), your sending parameter will be
  2282.                                unchanged.
  2283.  
  2284. Example:                       . load c:\dB4LIB\pcxt
  2285.                                . dB4LIB = "PCXT"
  2286.                                . call pcxt with dB4LIB
  2287.                                . ?substr(dB4LIB,1,1) = "Y"
  2288.                                .T.
  2289.                                . rele modu pcxt
  2290.                                                                 
  2291.                                From this example, it is a PC/XT.
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.                                         PCAT
  2324.  
  2325.  
  2326. Syntax:                        PCAT
  2327.  
  2328. Use:                           To determine if PC/AT.
  2329.  
  2330. Parameters:                    PCAT
  2331.  
  2332. Returns:                       The first character in the sending parameter will
  2333.                                have a "Y" if PC/AT, a "N" if it is not a PC/AT. If
  2334.                                you did not pass the parameter correctly (e.g.
  2335.                                dB4LIB = "ZCAT"), your sending parameter will be
  2336.                                unchanged.
  2337.  
  2338. Example:                       . load c:\dB4LIB\pcat
  2339.                                . dB4LIB = "PCAT"
  2340.                                . call pcat with dB4LIB
  2341.                                . ?substr(dB4LIB,1,1) = "Y"
  2342.                                .T.
  2343.                                . rele modu pcat
  2344.                                                                 
  2345.                                From this example, it is a PC/AT.
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.                                         PCJR
  2378.  
  2379.  
  2380. Syntax:                        PCJR
  2381.  
  2382. Use:                           To determine if PC/JR.
  2383.  
  2384. Parameters:                    PCJR
  2385.  
  2386. Returns:                       The first character in the sending parameter will
  2387.                                have a "Y" if PC/JR, a "N" if it is not a PC/JR. If
  2388.                                you did not pass the parameter correctly (e.g.
  2389.                                dB4LIB = "ZCJR"), your sending parameter will be
  2390.                                unchanged.
  2391.  
  2392. Example:                       . load c:\dB4LIB\pcjr
  2393.                                . dB4LIB = "PCJR"
  2394.                                . call pcjr with dB4LIB
  2395.                                . ?substr(dB4LIB,1,1) = "Y"
  2396.                                .T.
  2397.                                . rele modu pcjr
  2398.                                                                 
  2399.                                From this example, it is a PC jr.
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.                                         PCXT286
  2432.  
  2433.  
  2434. Syntax:                        PCXT286
  2435.  
  2436. Use:                           To determine if PC/XT 286.
  2437.  
  2438. Parameters:                    PCXT286
  2439.  
  2440. Returns:                       The first character in the sending parameter will
  2441.                                have a "Y" if PC/XT 286, a "N" if it is not a PC/XT
  2442.                                286. If you did not pass the parameter correctly
  2443.                                (e.g. dB4LIB = "ZCXT286"), your sending parameter
  2444.                                will be unchanged.
  2445.  
  2446. Example:                       . load c:\dB4LIB\pcxt286
  2447.                                . dB4LIB = "PCXT286"
  2448.                                . call pcxt286 with dB4LIB
  2449.                                . ?substr(dB4LIB,1,1) = "Y"
  2450.                                .T.
  2451.                                . rele modu pcxt286
  2452.                                                                 
  2453.                                From this example, it is a PC/XT 286.
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.                                         PCCONV
  2486.  
  2487.  
  2488. Syntax:                        PCCONV
  2489.  
  2490. Use:                           To determine if PC Convertible.
  2491.  
  2492. Parameters:                    PCCONV
  2493.  
  2494. Returns:                       The first character in the sending parameter will
  2495.                                have a "Y" if PC Convertible, a "N" if it is not a
  2496.                                PC Convertible. If you did not pass the parameter
  2497.                                correctly (e.g. dB4LIB = "ZCCONV"), your sending
  2498.                                parameter will be unchanged.
  2499.  
  2500. Example:                       . load c:\dB4LIB\pcconv
  2501.                                . dB4LIB = "PCCONV"
  2502.                                . call pcconv with dB4LIB
  2503.                                . ?substr(dB4LIB,1,1) = "Y"
  2504.                                .T.
  2505.                                . rele modu pcconv
  2506.                                                                 
  2507.                                From this example, it is a PC Convertible.
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.                                         PS2M30
  2540.  
  2541.  
  2542. Syntax:                        PS2M30
  2543.  
  2544. Use:                           To determine if PS/2 Model 30.
  2545.  
  2546. Parameters:                    PS2M30
  2547.  
  2548. Returns:                       The first character in the sending parameter will
  2549.                                have a "Y" if PS/2 Model 30, a "N" if it is not a
  2550.                                PS/2 Model 30. If you did not pass the parameter
  2551.                                correctly (e.g. dB4LIB = "ZS2M30"), your sending
  2552.                                parameter will be unchanged.
  2553.  
  2554. Example:                       . load c:\dB4LIB\ps2m30
  2555.                                . dB4LIB = "PS2M30"
  2556.                                . call ps2m30 with dB4LIB
  2557.                                . ?substr(dB4LIB,1,1) = "Y"
  2558.                                .T.
  2559.                                . rele modu ps2m30
  2560.                                                                 
  2561.                                From this example, it is a PS/2 Model 30.
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.                                         PS2M50
  2594.  
  2595.  
  2596. Syntax:                        PS2M50
  2597.  
  2598. Use:                           To determine if PS/2 Model 50.
  2599.  
  2600. Parameters:                    PS2M50
  2601.  
  2602. Returns:                       The first character in the sending parameter will
  2603.                                have a "Y" if PS/2 Model 50, a "N" if it is not a
  2604.                                PS/2 Model 50. If you did not pass the parameter
  2605.                                correctly (e.g. dB4LIB = "ZS2M50"), your sending
  2606.                                parameter will be unchanged.
  2607.  
  2608. Example:                       . load c:\dB4LIB\ps2m50
  2609.                                . dB4LIB = "PS2M50"
  2610.                                . call ps2m50 with dB4LIB
  2611.                                . ?substr(dB4LIB,1,1) = "Y"
  2612.                                .T.
  2613.                                . rele modu ps2m50
  2614.                                                                 
  2615.                                From this example, it is a PS/2 Model 50.
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.                                         PS2M55
  2648.  
  2649.  
  2650. Syntax:                        PS2M55
  2651.  
  2652. Use:                           To determine if PS/2 Model 55 SX.
  2653.  
  2654. Parameters:                    PS2M55
  2655.  
  2656. Returns:                       The first character in the sending parameter will
  2657.                                have a "Y" if PS/2 Model 55, a "N" if it is not a
  2658.                                PS/2 Model 55. If you did not pass the parameter
  2659.                                correctly (e.g. dB4LIB = "ZS2M55"), your sending
  2660.                                parameter will be unchanged.
  2661.  
  2662. Example:                       . load c:\dB4LIB\ps2m55
  2663.                                . dB4LIB = "PS2M55"
  2664.                                . call ps2m55 with dB4LIB
  2665.                                . ?substr(dB4LIB,1,1) = "Y"
  2666.                                .T.
  2667.                                . rele modu ps2m55
  2668.                                                                 
  2669.                                From this example, it is a PS/2 Model 55 SX.
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.                                         PS2M60
  2702.  
  2703.  
  2704. Syntax:                        PS2M60
  2705.  
  2706. Use:                           To determine if PS/2 Model 60.
  2707.  
  2708. Parameters:                    PS2M60
  2709.  
  2710. Returns:                       The first character in the sending parameter will
  2711.                                have a "Y" if PS/2 Model 60, a "N" if it is not a
  2712.                                PS/2 Model 60. If you did not pass the parameter
  2713.                                correctly (e.g. dB4LIB = "ZS2M60"), your sending
  2714.                                parameter will be unchanged.
  2715.  
  2716. Example:                       . load c:\dB4LIB\ps2m60
  2717.                                . dB4LIB = "PS2M60"
  2718.                                . call ps2m60 with dB4LIB
  2719.                                . ?substr(dB4LIB,1,1) = "Y"
  2720.                                .T.
  2721.                                . rele modu ps2m60
  2722.                                                                 
  2723.                                From this example, it is a PS/2 Model 60.
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.                                         PS2M70
  2756.  
  2757.  
  2758. Syntax:                        PS2M70
  2759.  
  2760. Use:                           To determine if PS/2 Model 70.
  2761.  
  2762. Parameters:                    PS2M70
  2763.  
  2764. Returns:                       The first character in the sending parameter will
  2765.                                have a "Y" if PS/2 Model 70, a "N" if it is not a
  2766.                                PS/2 Model 70. If you did not pass the parameter
  2767.                                correctly (e.g. dB4LIB = "ZS2M70"), your sending
  2768.                                parameter will be unchanged.
  2769.  
  2770. Example:                       . load c:\dB4LIB\ps2m70
  2771.                                . dB4LIB = "PS2M70"
  2772.                                . call ps2m70 with dB4LIB
  2773.                                . ?substr(dB4LIB,1,1) = "Y"
  2774.                                .T.
  2775.                                . rele modu ps2m70
  2776.                                                                 
  2777.                                From this example, it is a PS/2 Model 70.
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.                                         PS2M80
  2810.  
  2811.  
  2812. Syntax:                        PS2M80
  2813.  
  2814. Use:                           To determine if PS/2 Model 80.
  2815.  
  2816. Parameters:                    PS2M80
  2817.  
  2818. Returns:                       The first character in the sending parameter will
  2819.                                have a "Y" if PS/2 Model 80, a "N" if it is not a
  2820.                                PS/2 Model 80. If you did not pass the parameter
  2821.                                correctly (e.g. dB4LIB = "ZS2M80"), your sending
  2822.                                parameter will be unchanged.
  2823.  
  2824. Example:                       . load c:\dB4LIB\ps2m80
  2825.                                . dB4LIB = "PS2M80"
  2826.                                . call ps2m80 with dB4LIB
  2827.                                . ?substr(dB4LIB,1,1) = "Y"
  2828.                                .T.
  2829.                                . rele modu ps2m80
  2830.                                                                 
  2831.                                From this example, it is a PS/2 Model 80.
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.                                         PARALLEL
  2864.  
  2865.  
  2866. Syntax:                        PARALLEL
  2867.  
  2868. Use:                           To determine if a parallel port exists.
  2869.  
  2870. Parameters:                    PARALLEL
  2871.  
  2872. Returns:                       The first character in the sending parameter will
  2873.                                have a "Y" if a parallel port exists, and a "N" if
  2874.                                a parallel port does not exist.  If you did not
  2875.                                pass the parameter correctly (e.g. dB4LIB =
  2876.                                "ZARALLEL"), your sending parameter will be
  2877.                                unchanged.
  2878.  
  2879. Example:                       . load c:\dB4LIB\parallel
  2880.                                . dB4LIB = "PARALLEL"
  2881.                                . call parallel with dB4LIB
  2882.                                . ?substr(dB4LIB,1,1) = "Y"
  2883.                                .T.
  2884.                                . rele modu parallel
  2885.                                                                 
  2886.                                From this example, a parallel port does exist.
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.                                         REALTIME
  2918.  
  2919.  
  2920. Syntax:                        REALTIME
  2921.  
  2922. Use:                           To determine if a real-time clock is present.
  2923.  
  2924. Parameters:                    REALTIME
  2925.  
  2926. Returns:                       The first character in the sending parameter will
  2927.                                have a "Y" if a real-time clock is present, a "N" 
  2928.                                if it is not present. If you did not pass the     
  2929.                                parameter correctly (e.g. dB4LIB = "ZEALTIME"), your 
  2930.                                sending parameter will be unchanged.
  2931.  
  2932. Example:                       . load c:\dB4LIB\realtime
  2933.                                . dB4LIB = "REALTIME"
  2934.                                . call realtime with dB4LIB
  2935.                                . ?substr(dB4LIB,1,1) = "Y"
  2936.                                .T.
  2937.                                . rele modu realtime
  2938.                                
  2939.                                From this example, a real-time clock is present.
  2940.  
  2941. Notes:                         This command will not work on the PC/AT dated before
  2942.                                6/10/85.
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.                                         SERIAL
  2972.  
  2973.  
  2974. Syntax:                        SERIAL
  2975.  
  2976. Use:                           To determine if a serial port exists.
  2977.  
  2978. Parameters:                    SERIAL
  2979.  
  2980. Returns:                       The first character in the sending parameter will
  2981.                                have a "Y" if a serial port exists, and a "N" if a
  2982.                                serial port does not exist.  If you did not pass the
  2983.                                parameter correctly (e.g. dB4LIB = "ZERIAL"), your
  2984.                                sending parameter will be unchanged.
  2985.  
  2986. Example:                       . load c:\dB4LIB\serial
  2987.                                . dB4LIB = "SERIAL"
  2988.                                . call serial with dB4LIB
  2989.                                . ?substr(dB4LIB,1,1) = "Y"
  2990.                                .T.
  2991.                                . rele modu serial
  2992.                                                                 
  2993.                                From this example, a serial port exists.
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.                                      KEYBOARD COMMANDS
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.                                         CAPSSTAT
  3080.  
  3081.  
  3082. Syntax:                        CAPSSTAT
  3083.  
  3084. Use:                           To determine if the Caps Lock key is on.
  3085.  
  3086. Parameters:                    CAPS
  3087.  
  3088. Returns:                       The first character in the sending parameter will
  3089.                                have a "Y" if the Caps Lock key is on, a "N" if it
  3090.                                is off.  If you did not pass the parameter correctly
  3091.                                (e.g. dB4LIB = "ZAPS"), your sending parameter
  3092.                                will be unchanged.
  3093.  
  3094. Example:                       . load c:\dB4LIB\capsstat
  3095.                                . dB4LIB = "CAPS"
  3096.                                . call capsstat with dB4LIB
  3097.                                . ?substr(dB4LIB,1,1) = "Y"
  3098.                                .T.
  3099.                                . rele modu capsstat
  3100.  
  3101.                                From this example, the Caps Lock key is on.
  3102.  
  3103. Notes:                         Make sure you re-load capsstat into memory each time
  3104.                                you determine if the Caps Lock key is on or off.
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.                                         INSSTAT
  3134.  
  3135.  
  3136. Syntax:                        INSSTAT
  3137.  
  3138. Use:                           To determine if the Insert key is on.
  3139.  
  3140. Parameters:                    INS
  3141.  
  3142. Returns:                       The first character in the sending parameter will
  3143.                                have a "Y" if the Insert key is on, a "N" if it is
  3144.                                off.  If you did not pass the parameter correctly
  3145.                                (e.g. dB4LIB = "ZNS"), your sending parameter will
  3146.                                be unchanged.
  3147.  
  3148. Example:                       . load c:\dB4LIB\insstat
  3149.                                . dB4LIB = "INS"
  3150.                                . call insstat with dB4LIB
  3151.                                . ?substr(dB4LIB,1,1) = "Y"
  3152.                                .T.
  3153.                                . rele modu insstat
  3154.                                
  3155.                                From this example, the Insert key is on.
  3156.  
  3157. Notes:                         Make sure you re-load insstat into memory each time
  3158.                                you determine if the Insert Lock key is on or off.
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.                                         LEFTSHFT
  3188.  
  3189.  
  3190. Syntax:                        LEFTSHFT
  3191.  
  3192. Use:                           To determine if the Left Shift key is down.
  3193.  
  3194. Parameters:                    LEFT
  3195.  
  3196. Returns:                       The first character in the sending parameter will
  3197.                                have a "Y" if the Left Shift key is down, a "N" if
  3198.                                it is not down.  If you did not pass the parameter
  3199.                                correctly (e.g. dB4LIB = "ZEFT"), your sending
  3200.                                parameter will be unchanged.
  3201.  
  3202. Example:                       . load c:\dB4LIB\leftshft
  3203.                                . dB4LIB = "LEFT"
  3204.                                . call leftshft with dB4LIB
  3205.                                . ?substr(dB4LIB,1,1) = "Y"
  3206.                                .T.
  3207.                                . rele modu leftshft
  3208.                                
  3209.                                From this example, the Left Shift key is down.
  3210.  
  3211. Notes:                         Make sure you re-load leftshft into memory each time
  3212.                                you determine if the Left Shift key is down.
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.                                         NUMSTAT
  3242.  
  3243.  
  3244. Syntax:                        NUMSTAT
  3245.  
  3246. Use:                           To determine if the Num Lock key is on.
  3247.  
  3248. Parameters:                    NUM
  3249.  
  3250. Returns:                       The first character in the sending parameter will
  3251.                                have a "Y" if the Num Lock key is on, a "N" if it 
  3252.                                is off.  If you did not pass the parameter correctly
  3253.                                (e.g. dB4LIB = "ZUM"), your sending parameter will
  3254.                                be unchanged.
  3255.  
  3256. Example:                       . load c:\dB4LIB\numstat
  3257.                                . dB4LIB = "NUM"
  3258.                                . call numstat with dB4LIB
  3259.                                . ?substr(dB4LIB,1,1) = "Y"
  3260.                                .T.
  3261.                                . rele modu numstat
  3262.                                
  3263.                                From this example, the Num Lock key is on.
  3264.  
  3265. Notes:                         Make sure you re-load numstat into memory each time
  3266.                                you determine if the Num Lock key is on or off.
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.                                         RGHTSHFT
  3296.  
  3297.  
  3298. Syntax:                        RGHTSHFT
  3299.  
  3300. Use:                           To determine if the Left Shift key is down.
  3301.  
  3302. Parameters:                    RIGHT
  3303.  
  3304. Returns:                       The first character in the sending parameter will
  3305.                                have a "Y" if the Right Shift key is down, a "N" if
  3306.                                it is not down.  If you did not pass the parameter
  3307.                                correctly (e.g. dB4LIB = "ZIGHT"), your sending
  3308.                                parameter will be unchanged.
  3309.  
  3310. Example:                       . load c:\dB4LIB\rghtshft
  3311.                                . dB4LIB = "RIGHT"
  3312.                                . call rghtshft with dB4LIB
  3313.                                . ?substr(dB4LIB,1,1) = "Y"
  3314.                                .T.
  3315.                                . rele modu rghtshft
  3316.                                
  3317.                                From this example, the Right Shift key is down.
  3318.  
  3319. Notes:                         Make sure you re-load rghtshft into memory each time
  3320.                                you determine if the Right Shift key is down.
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.                                         SCRLSTAT
  3350.  
  3351.  
  3352. Syntax:                        SCRLSTAT
  3353.  
  3354. Use:                           To determine if the Scroll Lock key is on.
  3355.  
  3356. Parameters:                    SCRL
  3357.  
  3358. Returns:                       The first character in the sending parameter will
  3359.                                have a "Y" if the Scroll Lock key is on, a "N" if 
  3360.                                it is off.  If you did not pass the parameter     
  3361.                                correctly (e.g. dB4LIB = "ZCRL"), your sending    
  3362.                                parameter will be unchanged.
  3363.  
  3364. Example:                       . load c:\dB4LIB\scrlstat
  3365.                                . dB4LIB = "SCRL"
  3366.                                . call scrlstat with dB4LIB
  3367.                                . ?substr(dB4LIB,1,1) = "Y"
  3368.                                .T.
  3369.                                . rele modu scrlstat
  3370.                                
  3371.                                From this example, the Scroll Lock key is on.
  3372.  
  3373. Notes:                         Make sure you re-load scrlstat into memory each time
  3374.                                you determine if the Scroll Lock key is on or off.
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.                                         CAPSOFF
  3404.  
  3405.  
  3406. Syntax:                        CAPSOFF
  3407.  
  3408. Use:                           To set the Caps Lock key off.
  3409.  
  3410. Parameters:                    CAPS
  3411.  
  3412. Returns:                       Nothing is returned.  If you did not pass the
  3413.                                parameter correctly (e.g. sending = "ZAPS"), your
  3414.                                dB4LIB parameter will be unchanged.
  3415.  
  3416. Example:                       . load c:\dB4LIB\capsoff
  3417.                                . dB4LIB = "CAPS"
  3418.                                . call capsoff with dB4LIB
  3419.                                . rele modu capsoff
  3420.                                
  3421.                                From this example, the Caps Lock key is set off.
  3422.  
  3423. Notes:                         Make sure you re-load capsoff into memory each time
  3424.                                you set the Caps Lock key off.
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.                                         NUMOFF
  3458.  
  3459.  
  3460. Syntax:                        NUMOFF
  3461.  
  3462. Use:                           To set the Num Lock key off.
  3463.  
  3464. Parameters:                    NUM
  3465.  
  3466. Returns:                       Nothing is returned.  If you did not pass the
  3467.                                parameter correctly (e.g. dB4LIB = "ZUM"), your
  3468.                                dB4LIB parameter will be unchanged.
  3469.  
  3470. Example:                       . load c:\dB4LIB\numoff
  3471.                                . dB4LIB = "NUM"
  3472.                                . call numoff with dB4LIB
  3473.                                . rele modu numoff
  3474.                                
  3475.                                From this example, the Num Lock key is set off.
  3476.  
  3477. Notes:                         Make sure you re-load numoff into memory each time
  3478.                                you set the Num Lock key off.
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508.  
  3509.  
  3510.  
  3511.                                         SCRLOFF
  3512.  
  3513.  
  3514. Syntax:                        SCRLOFF
  3515.  
  3516. Use:                           To set the Scroll Lock key off.
  3517.  
  3518. Parameters:                    SCRL
  3519.  
  3520. Returns:                       Nothing is returned.  If you did not pass the
  3521.                                parameter correctly (e.g. dB4LIB = "ZCRL"), your
  3522.                                sending parameter will be unchanged.
  3523.  
  3524. Example:                       . load c:\dB4LIB\scrloff
  3525.                                . dB4LIB = "SCRL"
  3526.                                . call scrloff with dB4LIB
  3527.                                . rele modu scrloff
  3528.                      
  3529.                                From this example, the Scroll Lock key is set off.
  3530.  
  3531. Notes:                         Make sure you re-load scrloff into memory each time
  3532.                                you set the Scroll Lock key off.
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.                                         CAPSON
  3566.  
  3567.  
  3568. Syntax:                        CAPSON
  3569.  
  3570. Use:                           To set the Caps Lock key on.
  3571.  
  3572. Parameters:                    CAPS
  3573.  
  3574. Returns:                       Nothing is returned.  If you did not pass the
  3575.                                parameter correctly (e.g. dB4LIB = "ZAPS"), your
  3576.                                sending parameter will be unchanged.
  3577.  
  3578. Example:                       . load c:\dB4LIB\capson
  3579.                                . dB4LIB = "CAPS"
  3580.                                . call capson with dB4LIB
  3581.                                . rele modu capson
  3582.                                
  3583.                                From this example, the Caps Lock key is set on.
  3584.  
  3585. Notes:                         Make sure you re-load capson into memory each time
  3586.                                you set the Caps Lock key on.
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.                                         NUMON
  3620.  
  3621.  
  3622. Syntax:                        NUMON
  3623.  
  3624. Use:                           To set the Num Lock key on.
  3625.  
  3626. Parameters:                    NUM
  3627.  
  3628. Returns:                       Nothing is returned.  If you did not pass the
  3629.                                parameter correctly (e.g. dB4LIB = "ZUM"), your
  3630.                                sending parameter will be unchanged.
  3631.  
  3632. Example:                       . load c:\dB4LIB\numon
  3633.                                . dB4LIB = "NUM"
  3634.                                . call numon with dB4LIB
  3635.                                . rele modu numon
  3636.                                
  3637.                                From this example, the Num Lock key is set on.
  3638.  
  3639. Notes:                         Make sure you re-load numon into memory each time
  3640.                                you set the Num Lock key on.
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.                                         SCRLON
  3674.  
  3675.  
  3676. Syntax:                        SCRLON
  3677.  
  3678. Use:                           To set the Scroll Lock key on.
  3679.  
  3680. Parameters:                    SCRL
  3681.  
  3682. Returns:                       Nothing is returned.  If you did not pass the
  3683.                                parameter correctly (e.g. sending = "ZCRL"), your
  3684.                                sending parameter will be unchanged.
  3685.  
  3686. Example:                       . load c:\dB4LIB\scrlon
  3687.                                . dB4LIB = "SCRL"
  3688.                                . call scrlon with dB4LIB
  3689.                                . rele modu scrlon
  3690.                      
  3691.                                From this example, the Scroll Lock key is set on.
  3692.  
  3693. Notes:                         Make sure you re-load scrlon into memory each time
  3694.                                you set the Scroll Lock key on.
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737.  
  3738.  
  3739.                                   COMMUNICATION COMMANDS
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.                                         COM300
  3782.  
  3783.  
  3784. Syntax:                        COM300
  3785.  
  3786. Use:                           To initialize the communications line at 300 baud.
  3787.  
  3788. Parameters:                    In order to initialize the communications line, the
  3789.                                baud rate, parity, stop bit, and data length
  3790.                                parameters have to be set.  Use the table below to
  3791.                                initialize the communications lines 1, 2, 3, and 4. 
  3792.  
  3793.                                If you wanted to initialize communications line 1 
  3794.                                at 300 baud, no parity, 1 stop bit, and 7 data    
  3795.                                length, you would choose the letter "A" from the  
  3796.                                table below and add a comma and the communications 
  3797.                                line to initialize - in this case the number 0.   
  3798.                                Remember, that communications line 1 is 0, line 2 
  3799.                                is 1, line 3 is 2, and line 4 is 3.  
  3800.  
  3801.                                300, no parity, 1 stop bit, 7 data length = A
  3802.                                300, no parity, 1 stop bit, 8 data length = B
  3803.                                300, no parity, 2 stop bit, 7 data length = C
  3804.                                300, no parity, 2 stop bit, 8 data length = D
  3805.                                300, odd parity, 1 stop bit, 7 data length = E
  3806.                                300, odd parity, 1 stop bit, 8 data length = F
  3807.                                300, odd parity, 2 stop bit, 7 data length = G
  3808.                                300, odd parity, 2 stop bit, 8 data length = H
  3809.                                300, even parity, 1 stop bit, 7 data length = I
  3810.                                300, even parity, 1 stop bit, 8 data length = J
  3811.                                300, even parity, 2 stop bit, 7 data length = K
  3812.                                300, even parity, 2 stop bit, 8 data length = L
  3813.  
  3814. Returns:                       Use the dB4LIB communications status commands
  3815.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  3816.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  3817.                                the communications line if the return value is not
  3818.                                equal to 1 or 97.  If the return value is not equal
  3819.                                to 1 or 97, load and call COM300 again to see if any
  3820.                                errors disappear.  If you did not pass the parameter
  3821.                                correctly (e.g. dB4LIB = "Z,0"), your sending
  3822.                                parameter will be unchanged.
  3823.  
  3824. Example:                       . load c:\dB4LIB\com300
  3825.                                . dB4LIB = "A,0"
  3826.                                . call com300 with dB4LIB
  3827.                                . ?substr(dB4LIB,1,1) = "A"
  3828.                                .F.
  3829.                                . ?asc(substr(dB4LIB,1,1)) = 97
  3830.                                .T.
  3831.                                . rele modu com300
  3832.                                
  3833. First test to see if you passed the parameter correctly.  From this example, the 
  3834. parameter was passed correctly since the first character is not equal to "A".  
  3835.                                         COM1200
  3836.  
  3837.  
  3838. Syntax:                        COM1200
  3839.  
  3840. Use:                           To initialize the communications line at 1200 baud.
  3841.  
  3842. Parameters:                    In order to initialize the communications line, the
  3843.                                baud rate, parity, stop bit, and data length
  3844.                                parameters have to be set.  Use the table below to
  3845.                                initialize the communications lines 1, 2, 3, and 4. 
  3846.  
  3847.                                If you wanted to initialize communications line 1 
  3848.                                at 1200 baud, no parity, 1 stop bit, and 7 data   
  3849.                                length, you would choose the letter "A" from the  
  3850.                                table below and add a comma and the communications 
  3851.                                line to initialize - in this case the number 0.   
  3852.                                Remember, that communications line 1 is 0, line 2 
  3853.                                is 1, line 3 is 2, and line 4 is 3.  
  3854.  
  3855.                                1200, no parity, 1 stop bit, 7 data length = A
  3856.                                1200, no parity, 1 stop bit, 8 data length = B
  3857.                                1200, no parity, 2 stop bit, 7 data length = C
  3858.                                1200, no parity, 2 stop bit, 8 data length = D
  3859.                                1200, odd parity, 1 stop bit, 7 data length = E
  3860.                                1200, odd parity, 1 stop bit, 8 data length = F
  3861.                                1200, odd parity, 2 stop bit, 7 data length = G
  3862.                                1200, odd parity, 2 stop bit, 8 data length = H
  3863.                                1200, even parity, 1 stop bit, 7 data length = I
  3864.                                1200, even parity, 1 stop bit, 8 data length = J
  3865.                                1200, even parity, 2 stop bit, 7 data length = K
  3866.                                1200, even parity, 2 stop bit, 8 data length = L
  3867.  
  3868. Returns:                       Use the dB4LIB communications status commands
  3869.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  3870.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  3871.                                the communications line if the return value is not
  3872.                                equal to 1 or 97.  If the return value is not equal
  3873.                                to 1 or 97, load and call COM1200 again to see if
  3874.                                any errors disappear.  If you did not pass the
  3875.                                parameter correctly (e.g. dB4LIB = "Z,0"), your
  3876.                                sending parameter will be unchanged.
  3877.  
  3878. Example:                       . load c:\dB4LIB\com1200
  3879.                                . dB4LIB = "1,0"
  3880.                                . call com1200 with dB4LIB
  3881.                                . ?substr(dB4LIB,1,1) = "A"
  3882.                                .F.
  3883.                                . ?asc(substr(dB4LIB,1,1)) = 97
  3884.                                .T.
  3885.                                . rele modu com1200
  3886.                                
  3887. First test to see if you passed the parameter correctly.  From this example, the
  3888. parameter was passed correctly since the first character is not equal to "A".  
  3889.                                         COM2400
  3890.  
  3891.  
  3892. Syntax:                        COM2400
  3893.  
  3894. Use:                           To initialize the communications line at 2400 baud.
  3895.  
  3896. Parameters:                    In order to initialize the communications line, the
  3897.                                baud rate, parity, stop bit, and data length
  3898.                                parameters have to be set.  Use the table below to
  3899.                                initialize the communications lines 1, 2, 3, and 4. 
  3900.  
  3901.                                If you wanted to initialize communications line 1 
  3902.                                at 2400 baud, no parity, 1 stop bit, and 7 data   
  3903.                                length, you would choose the letter "A" from the  
  3904.                                table below and add a comma and the communications 
  3905.                                line to initialize - in this case the number 0.   
  3906.                                Remember, that communications line 1 is 0, line 2 
  3907.                                is 1, line 3 is 2, and line 4 is 3.  
  3908.  
  3909.                                2400, no parity, 1 stop bit, 7 data length = A
  3910.                                2400, no parity, 1 stop bit, 8 data length = B
  3911.                                2400, no parity, 2 stop bit, 7 data length = C
  3912.                                2400, no parity, 2 stop bit, 8 data length = D
  3913.                                2400, odd parity, 1 stop bit, 7 data length = E
  3914.                                2400, odd parity, 1 stop bit, 8 data length = F
  3915.                                2400, odd parity, 2 stop bit, 7 data length = G
  3916.                                2400, odd parity, 2 stop bit, 8 data length = H
  3917.                                2400, even parity, 1 stop bit, 7 data length = I
  3918.                                2400, even parity, 1 stop bit, 8 data length = J
  3919.                                2400, even parity, 2 stop bit, 7 data length = K
  3920.                                2400, even parity, 2 stop bit, 8 data length = L
  3921.  
  3922. Returns:                       Use the dB4LIB communications status commands
  3923.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  3924.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  3925.                                the communications line if the return value is not
  3926.                                equal to 1 or 97.  If the return value is not equal
  3927.                                to 1 or 97, load and call COM2400 again to see if
  3928.                                any errors disappear.  If you did not pass the
  3929.                                parameter correctly (e.g. dB4LIB = "Z,0"), your
  3930.                                sending parameter will be unchanged.
  3931.  
  3932. Example:                       . load c:\dB4LIB\com2400
  3933.                                . dB4LIB = "A,0"
  3934.                                . call com2400 with dB4LIB
  3935.                                . ?substr(dB4LIB,1,1) = "A"
  3936.                                .F.
  3937.                                . ?asc(substr(dB4LIB,1,1)) = 97
  3938.                                .T.
  3939.                                . rele modu com2400
  3940.                                
  3941. First test to see if you passed the parameter correctly.  From this example, the
  3942. parameter was passed correctly since the first character is not equal to "A".  
  3943.                                         COM4800
  3944.  
  3945.  
  3946. Syntax:                        COM4800
  3947.  
  3948. Use:                           To initialize the communications line at 4800 baud.
  3949.  
  3950. Parameters:                    In order to initialize the communications line, the
  3951.                                baud rate, parity, stop bit, and data length
  3952.                                parameters have to be set.  Use the table below to
  3953.                                initialize the communications lines 1, 2, 3, and 4. 
  3954.  
  3955.                                If you wanted to initialize communications line 1 
  3956.                                at 4800 baud, no parity, 1 stop bit, and 7 data   
  3957.                                length, you would choose the letter "A" from the  
  3958.                                table below and add a comma and the communications 
  3959.                                line to initialize - in this case the number 0.   
  3960.                                Remember, that communications line 1 is 0, line 2 
  3961.                                is 1, line 3 is 2, and line 4 is 3.  
  3962.  
  3963.                                4800, no parity, 1 stop bit, 7 data length = A
  3964.                                4800, no parity, 1 stop bit, 8 data length = B
  3965.                                4800, no parity, 2 stop bit, 7 data length = C
  3966.                                4800, no parity, 2 stop bit, 8 data length = D
  3967.                                4800, odd parity, 1 stop bit, 7 data length = E
  3968.                                4800, odd parity, 1 stop bit, 8 data length = F
  3969.                                4800, odd parity, 2 stop bit, 7 data length = G
  3970.                                4800, odd parity, 2 stop bit, 8 data length = H
  3971.                                4800, even parity, 1 stop bit, 7 data length = I
  3972.                                4800, even parity, 1 stop bit, 8 data length = J
  3973.                                4800, even parity, 2 stop bit, 7 data length = K
  3974.                                4800, even parity, 2 stop bit, 8 data length = L
  3975.  
  3976. Returns:                       Use the dB4LIB communications status commands
  3977.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  3978.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  3979.                                the communications line if the return value is not
  3980.                                equal to 1 or 97.  If the return value is not equal
  3981.                                to 1 or 97, load and call COM4800 again to see if
  3982.                                any errors disappear.  If you did not pass the
  3983.                                parameter correctly (e.g. dB4LIB = "Z,0"), your
  3984.                                sending parameter will be unchanged.
  3985.  
  3986. Example:                       . load c:\dB4LIB\com4800
  3987.                                . dB4LIB = "A,0"
  3988.                                . call com4800 with dB4LIB
  3989.                                . ?substr(dB4LIB,1,1) = "A"
  3990.                                .F.
  3991.                                . ?asc(substr(dB4LIB,1,1)) = 97
  3992.                                .T.
  3993.                                . rele modu com4800
  3994.                                
  3995. First test to see if you passed the parameter correctly.  From this example, the
  3996. parameter was passed correctly since the first character is not equal to "A".  
  3997.                                         COM9600
  3998.  
  3999.  
  4000. Syntax:                        COM9600
  4001.  
  4002. Use:                           To initialize the communications line at 9600 baud.
  4003.  
  4004. Parameters:                    In order to initialize the communications line, the
  4005.                                baud rate, parity, stop bit, and data length
  4006.                                parameters have to be set.  Use the table below to
  4007.                                initialize the communications lines 1, 2, 3, and 4. 
  4008.  
  4009.                                If you wanted to initialize communications line 1 
  4010.                                at 9600 baud, no parity, 1 stop bit, and 7 data   
  4011.                                length, you would choose the letter "A" from the  
  4012.                                table below and add a comma and the communications 
  4013.                                line to initialize - in this case the number 0.   
  4014.                                Remember, that communications line 1 is 0, line 2 
  4015.                                is 1, line 3 is 2, and line 4 is 3.  
  4016.  
  4017.                                9600, no parity, 1 stop bit, 7 data length = A
  4018.                                9600, no parity, 1 stop bit, 8 data length = B
  4019.                                9600, no parity, 2 stop bit, 7 data length = C
  4020.                                9600, no parity, 2 stop bit, 8 data length = D
  4021.                                9600, odd parity, 1 stop bit, 7 data length = E
  4022.                                9600, odd parity, 1 stop bit, 8 data length = F
  4023.                                9600, odd parity, 2 stop bit, 7 data length = G
  4024.                                9600, odd parity, 2 stop bit, 8 data length = H
  4025.                                9600, even parity, 1 stop bit, 7 data length = I
  4026.                                9600, even parity, 1 stop bit, 8 data length = J
  4027.                                9600, even parity, 2 stop bit, 7 data length = K
  4028.                                9600, even parity, 2 stop bit, 8 data length = L
  4029.  
  4030. Returns:                       Use the dB4LIB communications status commands
  4031.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  4032.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  4033.                                the communications line if the return value is not
  4034.                                equal to 1 or 97.  If the return value is not equal
  4035.                                to 1 or 97, load and call COM9600 again to see if
  4036.                                any errors disappear.  If you did not pass the
  4037.                                parameter correctly (e.g. dB4LIB = "Z,0"), your
  4038.                                sending parameter will be unchanged.
  4039.  
  4040. Example:                       . load c:\dB4LIB\com9600
  4041.                                . dB4LIB = "A,0"
  4042.                                . call com9600 with dB4LIB
  4043.                                . ?substr(dB4LIB,1,1) = "A"
  4044.                                .F.
  4045.                                . ?asc(substr(dB4LIB,1,1)) = 97
  4046.                                .T.
  4047.                                . rele modu com9600
  4048.                                
  4049. First test to see if you passed the parameter correctly.  From this example, the
  4050. parameter was passed correctly since the first character is not equal to "A".  
  4051.                                         COMSTAT
  4052.  
  4053.  
  4054. Syntax:                        COMSTAT
  4055.  
  4056. Use:                           To determine if a communications line is data
  4057.                                ready.
  4058.  
  4059. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4060.                                COM3 for com4.
  4061.  
  4062. Returns:                       The first character in the sending parameter will
  4063.                                have the status of the communication line.  If you
  4064.                                did not pass the parameter correctly (e.g. dB4LIB
  4065.                                = "ZOM0"), your sending parameter will be unchanged.
  4066.  
  4067. Example:                       . load c:\dB4LIB\comstat
  4068.                                . dB4LIB = "COM0"
  4069.                                . call comstat with dB4LIB
  4070.                                . ?asc(substr(dB4LIB,1,1)) = 97
  4071.                                .T.
  4072.                                . rele modu comstat
  4073.  
  4074.                                From this example, the status of communication port
  4075.                                1 is: data ready, transfer holding register empty,
  4076.                                and transfer shift register empty.  If the return
  4077.                                value is not equal to 1 or 97, load and call COMSTAT
  4078.                                again to see if any errors disappear.  If you did
  4079.                                not receive a value of 1 or 97, then an error
  4080.                                occurred, and the communications port may not ready
  4081.                                to properly receive data.
  4082.  
  4083.  
  4084.  
  4085.  
  4086.  
  4087.  
  4088.  
  4089.  
  4090.  
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.                                         COMDR
  4106.  
  4107.  
  4108. Syntax:                        COMDR
  4109.  
  4110. Use:                           To determine the status of data ready.
  4111.  
  4112. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4113.                                COM3 for com4.
  4114.  
  4115. Returns:                       The first character in the sending parameter will
  4116.                                have a "Y" if data ready is turned on, a "N" if data
  4117.                                ready is turned off. If you did not pass the
  4118.                                parameter correctly (e.g. dB4LIB = "ZOM0"), your
  4119.                                sending parameter will be unchanged.
  4120.  
  4121. Example:                       . load c:\dB4LIB\comdr
  4122.                                . dB4LIB = "COM0"
  4123.                                . call comdr with dB4LIB
  4124.                                . ?substr(dB4LIB,1,1) = "Y"
  4125.                                .T.
  4126.                                . rele modu comdr
  4127.  
  4128.                                From this example, data ready is turned on. 
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.  
  4139.  
  4140.  
  4141.  
  4142.  
  4143.  
  4144.  
  4145.  
  4146.  
  4147.  
  4148.  
  4149.  
  4150.  
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  
  4156.  
  4157.  
  4158.  
  4159.                                         COMOE
  4160.  
  4161.  
  4162. Syntax:                        COMOE
  4163.  
  4164. Use:                           To determine the status of overrun error.
  4165.  
  4166. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4167.                                COM3 for com4.
  4168.  
  4169. Returns:                       The first character in the sending parameter will
  4170.                                have a "Y" if overrun error is turned on, a "N" if
  4171.                                overrun error is turned off. If you did not pass the
  4172.                                parameter correctly (e.g. dB4LIB = "ZOM0"), your
  4173.                                sending parameter will be unchanged.
  4174.  
  4175. Example:                       . load c:\dB4LIB\comoe
  4176.                                . dB4LIB = "COM0"
  4177.                                . call comoe with dB4LIB
  4178.                                . ?substr(dB4LIB,1,1) = "Y"
  4179.                                .T.
  4180.                                . rele modu comoe
  4181.  
  4182.                                From this example, overrun error is turned on. 
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.                                         COMPE
  4214.  
  4215.  
  4216. Syntax:                        COMPE
  4217.  
  4218. Use:                           To determine the status of parity error.
  4219.  
  4220. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4221.                                COM3 for com4.
  4222.  
  4223. Returns:                       The first character in the sending parameter will
  4224.                                have a "Y" if parity error is turned on, a "N" if
  4225.                                parity error is turned off. If you did not pass the
  4226.                                parameter correctly (e.g. dB4LIB = "ZOM0"), your
  4227.                                sending parameter will be unchanged.
  4228.  
  4229. Example:                       . load c:\dB4LIB\compe
  4230.                                . dB4LIB = "COM0"
  4231.                                . call compe with dB4LIB
  4232.                                . ?substr(dB4LIB,1,1) = "Y"
  4233.                                .T.
  4234.                                . rele modu compe
  4235.  
  4236.                                From this example, parity error is turned on. 
  4237.  
  4238.  
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.                                         COMFE
  4268.  
  4269.  
  4270. Syntax:                        COMFE
  4271.  
  4272. Use:                           To determine the status of framing error.
  4273.  
  4274. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4275.                                COM3 for com4.
  4276.  
  4277. Returns:                       The first character in the sending parameter will
  4278.                                have a "Y" if framing error is turned on, a "N" if
  4279.                                framing error is turned off. If you did not pass the
  4280.                                parameter correctly (e.g. dB4LIB = "ZOM0"), your
  4281.                                sending parameter will be unchanged.
  4282.  
  4283. Example:                       . load c:\dB4LIB\comfe
  4284.                                . dB4LIB = "COM0"
  4285.                                . call comfe with dB4LIB
  4286.                                . ?substr(dB4LIB,1,1) = "Y"
  4287.                                .T.
  4288.                                . rele modu comfe
  4289.  
  4290.                                From this example, framing error is turned on. 
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.  
  4320.  
  4321.                                         COMBID
  4322.  
  4323.  
  4324. Syntax:                        COMBID
  4325.  
  4326. Use:                           To determine the status of break interrupt detected.
  4327.  
  4328. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4329.                                COM3 for com4.
  4330.  
  4331. Returns:                       The first character in the sending parameter will
  4332.                                have a "Y" if break interrupt detected is turned on,
  4333.                                a "N" if break interrupt detected is turned off. If
  4334.                                you did not pass the parameter correctly (e.g.
  4335.                                dB4LIB = "ZOM0"), your sending parameter will
  4336.                                be unchanged.
  4337.  
  4338. Example:                       . load c:\dB4LIB\combid
  4339.                                . dB4LIB = "COM0"
  4340.                                . call combid with dB4LIB
  4341.                                . ?substr(dB4LIB,1,1) = "Y"
  4342.                                .T.
  4343.                                . rele modu combid
  4344.  
  4345.                                From this example, break interrupt detected is
  4346.                                turned on. 
  4347.  
  4348.  
  4349.  
  4350.  
  4351.  
  4352.  
  4353.  
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.  
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375.                                         COMTHR
  4376.  
  4377.  
  4378. Syntax:                        COMTHR
  4379.  
  4380. Use:                           To determine the status of transfer holding register
  4381.                                empty.
  4382.  
  4383. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4384.                                COM3 for com4.
  4385.  
  4386. Returns:                       The first character in the sending parameter will
  4387.                                have a "Y" if transfer holding register empty is
  4388.                                turned on, a "N" if transfer holding register empty
  4389.                                is turned off. If you did not pass the parameter
  4390.                                correctly (e.g. dB4LIB = "ZOM0"), your sending
  4391.                                parameter will be unchanged.
  4392.  
  4393. Example:                       . load c:\dB4LIB\comthr
  4394.                                . dB4LIB = "COM0"
  4395.                                . call comthr with dB4LIB
  4396.                                . ?substr(dB4LIB,1,1) = "Y"
  4397.                                .T.
  4398.                                . rele modu comthr
  4399.  
  4400.                                From this example, transfer holding register empty
  4401.                                is turned on. 
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.                                         COMTSR
  4430.  
  4431.  
  4432. Syntax:                        COMTSR
  4433.  
  4434. Use:                           To determine the status of transfer shift register
  4435.                                empty.                          
  4436.  
  4437. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4438.                                COM3 for com4.
  4439.  
  4440. Returns:                       The first character in the sending parameter will
  4441.                                have a "Y" if transfer shift register empty is
  4442.                                turned on, a "N" if transfer shift register empty 
  4443.                                is turned off. If you did not pass the parameter
  4444.                                correctly (e.g. dB4LIB = "ZOM0"), your sending
  4445.                                parameter will be unchanged.
  4446.  
  4447. Example:                       . load c:\dB4LIB\comtsr
  4448.                                . dB4LIB = "COM0"
  4449.                                . call comtsr with dB4LIB
  4450.                                . ?substr(dB4LIB,1,1) = "Y"
  4451.                                .T.
  4452.                                . rele modu comtsr
  4453.  
  4454.                                From this example, transfer shift register empty
  4455.                                is turned on. 
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.  
  4462.  
  4463.  
  4464.  
  4465.  
  4466.  
  4467.  
  4468.  
  4469.  
  4470.  
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.                                         COMTOE
  4484.  
  4485.  
  4486. Syntax:                        COMTOE
  4487.  
  4488. Use:                           To determine the status of time-out error.
  4489.  
  4490. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4491.                                COM3 for com4.
  4492.  
  4493. Returns:                       The first character in the sending parameter will
  4494.                                have a "Y" if time-out error is turned on, a "N" if
  4495.                                time-out error is turned off. If you did not pass
  4496.                                the parameter correctly (e.g. dB4LIB = "ZOM0"),
  4497.                                your sending parameter will be unchanged.
  4498.  
  4499. Example:                       . load c:\dB4LIB\comtoe
  4500.                                . dB4LIB = "COM0"
  4501.                                . call comtoe with dB4LIB
  4502.                                . ?substr(dB4LIB,1,1) = "Y"
  4503.                                .T.
  4504.                                . rele modu comtoe
  4505.  
  4506.                                From this example, time-out error is turned on. 
  4507.  
  4508.  
  4509.  
  4510.  
  4511.  
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.                                         LPTINIT
  4538.  
  4539.  
  4540. Syntax:                        LPTINIT
  4541.  
  4542. Use:                           To initialize the line printer (LPT).
  4543.  
  4544. Parameters:                    LPT0 for lpt1, LPT1 for lpt2, and LPT2 for lpt3.
  4545.  
  4546. Returns:                       The first character in the sending parameter will
  4547.                                have the status of the line printer.  If you did not
  4548.                                pass the parameter correctly (e.g. dB4LIB =
  4549.                                "ZPT0"), your sending parameter will be unchanged.
  4550.  
  4551. Example:                       . load c:\dB4LIB\lptinit
  4552.                                . dB4LIB = "LPT0"
  4553.                                . call lptinit with dB4LIB
  4554.                                . ?asc(substr(dB4LIB,1,1))
  4555.                                144
  4556.                                . rele modu lptinit
  4557.                                
  4558.                                From this example, the printer status for LPT1 after
  4559.                                initialization is ready to print.
  4560.  
  4561.                                Below is a table of possible outcomes:
  4562.  
  4563.                                0 = Initialization successful
  4564.                                8 = Offline
  4565.                                40 = Out of paper
  4566.                                72 = I/O error
  4567.                                144 = Printer ready
  4568.                                200 = Printer power off
  4569.  
  4570.                                The above values are only valid with IBM and EPSON
  4571.                                compatible printers.  If you have a different type
  4572.                                of printer, you may be able to determine the value
  4573.                                specific to your printer.  If you are using a non-
  4574.                                compatible printer, run LPTINIT under different
  4575.                                conditions (e.g. printer on, printer not turned on,
  4576.                                etc.).  The results you obtain may allow you to
  4577.                                build a table of outcomes for your particular
  4578.                                printer.  When you test LPTINIT using a non-
  4579.                                IBM/EPSON compatible printer, make sure all of your
  4580.                                dBASE application files are closed.  Otherwise, you
  4581.                                may get unwanted results!
  4582.  
  4583.  
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.                                         LPTSTAT
  4592.  
  4593.  
  4594. Syntax:                        LPTSTAT
  4595.  
  4596. Use:                           To determine the status of the line printer (LPT).
  4597.  
  4598. Parameters:                    LPT0 for lpt1, LPT1 for lpt2, and LPT2 for lpt3.
  4599.  
  4600. Returns:                       The first character in the sending parameter will
  4601.                                have the status of the line printer.  If you did not
  4602.                                pass the parameter correctly (e.g. dB4LIB =
  4603.                                "ZPT0"), your sending parameter will be unchanged.
  4604.  
  4605. Example:                       . load c:\dB4LIB\lptstat
  4606.                                . dB4LIB = "LPT0"
  4607.                                . call lptstat with dB4LIB
  4608.                                . ?asc(substr(dB4LIB,1,1))
  4609.                                144
  4610.                                . rele modu lptstat
  4611.                                
  4612.                                From this example, the status of the LPT1 is printer
  4613.                                ready.
  4614.  
  4615.                                Below is a table of possible outcomes:
  4616.  
  4617.                                8 = Offline
  4618.                                40 = Out of paper
  4619.                                72 = I/O error
  4620.                                144 = Printer ready
  4621.                                200 = Printer power off
  4622.  
  4623.                                The above values are only valid with IBM and EPSON
  4624.                                compatible printers.  If you have a different type
  4625.                                of printer, you may be able to determine the value
  4626.                                specific to your printer.  If you are using a non-
  4627.                                compatible printer, run LPTSTAT under different
  4628.                                conditions (e.g. printer on, printer not turned on,
  4629.                                etc.).  The results you obtain may allow you to
  4630.                                build a table of outcomes for your particular
  4631.                                printer. When you test LPTINIT using a non-
  4632.                                IBM/EPSON compatible printer, make sure all of your
  4633.                                dBASE application files are closed.  Otherwise, you
  4634.                                may get unwanted results!
  4635.  
  4636.  
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643.  
  4644.  
  4645.                                         MODMDCTS
  4646.  
  4647.  
  4648. Syntax:                        MODMDCTS
  4649.  
  4650. Use:                           To determine the status of delta clear to send. 
  4651.  
  4652. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4653.                                COM3 for com4.
  4654.  
  4655. Returns:                       The first character in the sending parameter will
  4656.                                have a "Y" if delta clear to send is turned on, a
  4657.                                "N" if delta clear to send is turned off. If you did
  4658.                                not pass the parameter correctly (e.g. dB4LIB =
  4659.                                "ZOM0"), your sending parameter will be unchanged.
  4660.  
  4661. Example:                       . load c:\dB4LIB\modmdcts
  4662.                                . dB4LIB = "COM0"
  4663.                                . call modmdcts with dB4LIB
  4664.                                . ?substr(dB4LIB,1,1) = "Y"
  4665.                                .T.
  4666.                                . rele modu modmdcts
  4667.  
  4668.                                From this example, delta clear to send is turned on.
  4669.  
  4670.  
  4671.  
  4672.  
  4673.  
  4674.  
  4675.  
  4676.  
  4677.  
  4678.  
  4679.  
  4680.  
  4681.  
  4682.  
  4683.  
  4684.  
  4685.  
  4686.  
  4687.  
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.                                         MODMDDSR
  4700.  
  4701.  
  4702. Syntax:                        MODMDDSR
  4703.  
  4704. Use:                           To determine the status of delta data set ready. 
  4705.  
  4706. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4707.                                COM3 for com4.
  4708.  
  4709. Returns:                       The first character in the sending parameter will
  4710.                                have a "Y" if delta data set ready is turned on, a
  4711.                                "N" if delta data set ready is turned off. If you
  4712.                                did not pass the parameter correctly (e.g. dB4LIB
  4713.                                = "ZOM0"), your sending parameter will be unchanged.
  4714.  
  4715. Example:                       . load c:\dB4LIB\modmddsr
  4716.                                . dB4LIB = "COM0"
  4717.                                . call modmddsr with dB4LIB
  4718.                                . ?substr(dB4LIB,1,1) = "Y"
  4719.                                .T.
  4720.                                . rele modmddsr
  4721.  
  4722.                                From this example, delta data set ready is turned
  4723.                                on. 
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.                                         MODMTER
  4754.  
  4755.  
  4756. Syntax:                        MODMTER
  4757.  
  4758. Use:                           To determine the status of trailing edge ring
  4759.                                detector.
  4760.  
  4761. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4762.                                COM3 for com4.
  4763.  
  4764. Returns:                       The first character in the sending parameter will
  4765.                                have a "Y" if trailing edge ring detector is turned
  4766.                                on, a "N" if trailing edge ring detector is turned
  4767.                                off. If you did not pass the parameter correctly
  4768.                                (e.g. dB4LIB = "ZOM0"), your sending parameter
  4769.                                will be unchanged.
  4770.  
  4771. Example:                       . load c:\dB4LIB\modmter
  4772.                                . dB4LIB = "COM0"
  4773.                                . call modmter with dB4LIB
  4774.                                . ?substr(dB4LIB,1,1) = "Y"
  4775.                                .T.
  4776.                                . rele modu modmter
  4777.  
  4778.                                From this example, trailing edge ring detector is
  4779.                                turned on. 
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788.  
  4789.  
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.                                         MODMDRLS
  4808.  
  4809.  
  4810. Syntax:                        MODMDRLS
  4811.  
  4812. Use:                           To determine the status of delta receive line signal
  4813.                                detect.
  4814.  
  4815. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4816.                                COM3 for com4.
  4817.  
  4818. Returns:                       The first character in the sending parameter will
  4819.                                have a "Y" if delta receive line signal detect is
  4820.                                turned on, a "N" if delta receive line signal detect
  4821.                                is turned off. If you did not pass the parameter
  4822.                                correctly (e.g. dB4LIB = "ZOM0"), your sending
  4823.                                parameter will be unchanged.
  4824.  
  4825. Example:                       . load c:\dB4LIB\modmdrls
  4826.                                . dB4LIB = "COM0"
  4827.                                . call modmdrls with dB4LIB
  4828.                                . ?substr(dB4LIB,1,1) = "Y"
  4829.                                .T.
  4830.                                . rele modu modmdrls
  4831.  
  4832.                                From this example, delta receive line signal detect
  4833.                                is turned on. 
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.                                         MODMCTS
  4862.  
  4863.  
  4864. Syntax:                        MODMCTS
  4865.  
  4866. Use:                           To determine the status of clear to send.
  4867.  
  4868. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4869.                                COM3 for com4.
  4870.  
  4871. Returns:                       The first character in the sending parameter will
  4872.                                have a "Y" if clear to send is turned on, a "N" if
  4873.                                clear to send is turned off. If you did not pass the
  4874.                                parameter correctly (e.g. dB4LIB = "ZOM0"), your
  4875.                                sending parameter will be unchanged.
  4876.  
  4877. Example:                       . load c:\dB4LIB\modmcts
  4878.                                . dB4LIB = "COM0"
  4879.                                . call modmcts with dB4LIB
  4880.                                . ?substr(dB4LIB,1,1) = "Y"
  4881.                                .T.
  4882.                                . rele modu modmcts
  4883.  
  4884.                                From this example, clear to send is turned on. 
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.  
  4905.  
  4906.  
  4907.  
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.                                         MODMDSR
  4916.  
  4917.  
  4918. Syntax:                        MODMDSR
  4919.  
  4920. Use:                           To determine the status of data set ready.
  4921.  
  4922. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4923.                                COM3 for com4.
  4924.  
  4925. Returns:                       The first character in the sending parameter will
  4926.                                have a "Y" if data set ready is turned on, a "N" if
  4927.                                data set ready is turned off. If you did not pass
  4928.                                the parameter correctly (e.g. dB4LIB =
  4929.                                "ZOM0"), your sending parameter will be unchanged.
  4930.  
  4931. Example:                       . load c:\dB4LIB\modmdsr
  4932.                                . dB4LIB = "COM0"
  4933.                                . call modmdsr with dB4LIB
  4934.                                . ?substr(dB4LIB,1,1) = "Y"
  4935.                                .T.
  4936.                                . rele modu modmdsr
  4937.  
  4938.                                From this example, data set ready is turned on. 
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.                                         MODMRI
  4970.  
  4971.  
  4972. Syntax:                        MODMRI
  4973.  
  4974. Use:                           To determine the status of ring indicator.
  4975.  
  4976. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4977.                                COM3 for com4.
  4978.  
  4979. Returns:                       The first character in the sending parameter will
  4980.                                have a "Y" if ring indicator is turned on, a "N" if
  4981.                                ring indicator is turned off. If you did not pass
  4982.                                the parameter correctly (e.g. dB4LIB = "ZOM0"),
  4983.                                your sending parameter will be unchanged.
  4984.  
  4985. Example:                       . load c:\dB4LIB\modmri
  4986.                                . dB4LIB = "COM0"
  4987.                                . call modmri with dB4LIB
  4988.                                . ?substr(dB4LIB,1,1) = "Y"
  4989.                                .T.
  4990.                                . rele modu modmri
  4991.  
  4992.                                From this example, ring indicator is turned on. 
  4993.  
  4994.  
  4995.  
  4996.  
  4997.  
  4998.  
  4999.  
  5000.  
  5001.  
  5002.  
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009.  
  5010.  
  5011.  
  5012.  
  5013.  
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  
  5021.  
  5022.  
  5023.                                         MODMRLS
  5024.  
  5025.  
  5026. Syntax:                        MODMRLS
  5027.  
  5028. Use:                           To determine the status of receive line signal
  5029.                                detect.
  5030.  
  5031. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  5032.                                COM3 for com4.
  5033.  
  5034. Returns:                       The first character in the sending parameter will
  5035.                                have a "Y" if receive line signal detect is turned
  5036.                                on, a "N" if receive line signal detect is turned
  5037.                                off. If you did not pass the parameter correctly
  5038.                                (e.g. dB4LIB = "ZOM0"), your sending parameter
  5039.                                will be unchanged.
  5040.  
  5041. Example:                       . load c:\dB4LIB\modmrls
  5042.                                . dB4LIB = "COM0"
  5043.                                . call modmrls with dB4LIB
  5044.                                . ?substr(dB4LIB,1,1) = "Y"
  5045.                                .T.
  5046.                                . rele modu modmrls
  5047.  
  5048.                                From this example, receive line signal detect is
  5049.                                turned on. 
  5050.  
  5051.  
  5052.  
  5053.  
  5054.  
  5055.  
  5056.  
  5057.  
  5058.  
  5059.  
  5060.  
  5061.  
  5062.  
  5063.  
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.  
  5079.  
  5080.  
  5081.  
  5082.  
  5083.  
  5084.  
  5085.  
  5086.  
  5087.  
  5088.  
  5089.                                     MISCELLANEOUS COMMANDS
  5090.  
  5091.  
  5092.  
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106.  
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.  
  5115.  
  5116.  
  5117.  
  5118.  
  5119.  
  5120.  
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131.                                         CDROMDRV
  5132.  
  5133.  
  5134. Syntax:                        CDROMDRV
  5135.  
  5136. Use:                           To determine the presence of the MS CD-ROM
  5137.                                extensions (MSCDEX.exe).  If your application is
  5138.                                retrieving information from a CD-ROM, you should
  5139.                                first see if the extensions are loaded into memory.
  5140.  
  5141. Parameters:                    CDROM
  5142.  
  5143. Returns:                       The first character in the sending parameter will
  5144.                                have a "Y" if the extensions are present in memory,
  5145.                                and a "N" if they are not present.  If you did not
  5146.                                pass the parameter correctly (e.g. dB4LIB =
  5147.                                "ZDROM"), your sending parameter will be unchanged.
  5148.  
  5149. Example:                       . load c:\dB4LIB\cdromdrv
  5150.                                . dB4LIB = "CDROM"
  5151.                                . call cdromdrv with dB4LIB
  5152.                                . ?substr(dB4LIB,1,1) = "Y"
  5153.                                .T.
  5154.                                . rele modu cdromdrv
  5155.                                                                 
  5156.                                From the above example, the CD-ROM extension is
  5157.                                present in memory.
  5158.  
  5159. Example:                       if substr(dB4LIB,1,1) = "N"
  5160.                                   @ 1,0 Say "Error!  Need MS CD-ROM extensions."
  5161.                                   @ 2,0 Say "Exit from application, load MS CD-ROM"
  5162.                                   @ 3,0 Say "extensions, and re-start program."
  5163.                                endif
  5164.  
  5165.                                Use the above example to warn the computer user if
  5166.                                the CD-ROM extensions are not loaded into memory.
  5167.  
  5168. See:                           CDROMVER
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.  
  5185.                                         CDROMVER
  5186.  
  5187.  
  5188. Syntax:                        CDROMVER
  5189.  
  5190. Use:                           To determine the CD-ROM extension version.
  5191.  
  5192. Parameters:                    CDROM
  5193.  
  5194. Returns:                       The first character in the sending parameter will
  5195.                                have the CD-ROM major version number, and the second
  5196.                                character in the sending parameter will have the CD-
  5197.                                ROM minor version number if the CD-ROM extension
  5198.                                module is present in memory.  If the CD-ROM
  5199.                                extension module is not present in memory, you will
  5200.                                get garbage.  If you did not pass the parameter
  5201.                                correctly (e.g. dB4LIB = "ZDROM"), your sending
  5202.                                parameter will be unchanged.
  5203.  
  5204. Example:                       . load c:\dB4LIB\cdromdrv
  5205.                                . dB4LIB = "CDROM"
  5206.                                . call cdromdrv with dB4LIB
  5207.                                . ?substr(dB4LIB,1,1) = "Y"
  5208.                                .T.
  5209.                                . rele modu cdromdrv
  5210.  
  5211.                                . load c:\dB4LIB\cdromver
  5212.                                . dB4LIB = "CDROM"
  5213.                                . call cdromver with dB4LIB
  5214.                                . ?asc(substr(dB4LIB,1,1))
  5215.                                . 2
  5216.                                . ?asc(substr(dB4LIB,2,1))
  5217.                                . 10
  5218.                                . rele modu cdromver
  5219.  
  5220.                                From the above example, first verify that the CD-ROM
  5221.                                extension is present in memory.  If it is, determine
  5222.                                the CD-ROM extension version number.  In this
  5223.                                example it is 2.10.
  5224.  
  5225.  
  5226. See:                           CDROMDRV
  5227.  
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.                                         CURSCOL
  5240.  
  5241. Syntax:                        CURSCOL
  5242.  
  5243. Use:                           To determine the column position of the cursor.
  5244.  
  5245. Parameters:                    COL
  5246.  
  5247. Returns:                       The first character in the sending parameter will
  5248.                                have the column position of the cursor.  If you did
  5249.                                not pass the parameter correctly (e.g. dB4LIB =
  5250.                                "ZOL"), your sending parameter will be unchanged.
  5251.  
  5252. Example:                       . load c:\dB4LIB\curscol
  5253.                                . dB4LIB = "COL"
  5254.                                . call curscol with dB4LIB
  5255.                                . ?asc(substr(dB4LIB,1,1))
  5256.                                24
  5257.                                . rele modu curscol
  5258.  
  5259.                                From this example, the column position of the cursor
  5260.                                is at column 24.
  5261.  
  5262. See:                           CURSOR, CURSROW
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.                                         CURSROW
  5294.  
  5295.  
  5296. Syntax:                        CURSROW
  5297.  
  5298. Use:                           To determine the row position of the cursor.
  5299.  
  5300. Parameters:                    ROW
  5301.  
  5302. Returns:                       The first character in the sending parameter will
  5303.                                have the row position of the cursor.  If you did not
  5304.                                pass the parameter correctly (e.g. dB4LIB =
  5305.                                "ZOL"), your sending parameter will be unchanged.
  5306.  
  5307. Example:                       . load c:\dB4LIB\cursrow
  5308.                                . dB4LIB = "ROW"
  5309.                                . call cursrow with dB4LIB
  5310.                                . ?asc(substr(dB4LIB,1,1))
  5311.                                0
  5312.                                . rele modu cursrow
  5313.  
  5314.                                From this example, the row position of the cursor 
  5315.                                is at row 0.
  5316.  
  5317. See:                           CURSOR, CURSCOL
  5318.  
  5319.  
  5320.  
  5321.  
  5322.  
  5323.  
  5324.  
  5325.  
  5326.  
  5327.  
  5328.  
  5329.  
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335.  
  5336.  
  5337.  
  5338.  
  5339.  
  5340.  
  5341.  
  5342.  
  5343.  
  5344.  
  5345.  
  5346.  
  5347.                                         DAYWEEK
  5348.  
  5349.  
  5350. Syntax:                        DAYWEEK
  5351.  
  5352. Use:                           To determine the day of the week.
  5353.  
  5354. Parameters:                    DAY
  5355.  
  5356. Returns:                       The first character in the sending parameter will
  5357.                                have the day of the week (0=Sunday, 1=Monday, etc.).
  5358.  
  5359.                                If you did not pass the parameter correctly (e.g.
  5360.                                dB4LIB = "ZAY"), your sending parameter will be
  5361.                                unchanged.
  5362.  
  5363. Example:                       . load c:\dB4LIB\dayweek
  5364.                                . dB4LIB = "DAY"
  5365.                                . call dayweek with dB4LIB
  5366.                                . ?asc(substr(dB4LIB,1,1))
  5367.                                3
  5368.                                . rele modu dayweek
  5369.                                
  5370.                                From this example, day of the week is Wednesday. 
  5371.                                Below is a list of all possible outcomes:
  5372.  
  5373.                                0 = Sunday
  5374.                                1 = Monday
  5375.                                2 = Tuesday
  5376.                                3 = Wednesday
  5377.                                4 = Thursday
  5378.                                5 = Friday
  5379.                                6 = Saturday
  5380.  
  5381.  
  5382.  
  5383.  
  5384.  
  5385.  
  5386.  
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.  
  5399.  
  5400.  
  5401.                                         MOUSEDRV
  5402.  
  5403.  
  5404. Syntax:                        MOUSEDRV
  5405.  
  5406. Use:                           To determine the presence of the mouse driver. 
  5407.  
  5408. Parameters:                    MOUSE
  5409.  
  5410. Returns:                       The first character in the sending parameter will
  5411.                                have a "Y" if the mouse driver is present in memory,
  5412.                                and a "N" if it is not present.  If you did not pass
  5413.                                the parameter correctly (e.g. dB4LIB
  5414.                                ="ZOUSE"), your sending parameter will be unchanged.
  5415.  
  5416. Example:                       . load c:\dB4LIB\mousedrv
  5417.                                . dB4LIB = "MOUSE"
  5418.                                . call mousedrv with dB4LIB
  5419.                                . ?substr(dB4LIB,1,1) = "Y"
  5420.                                .T.
  5421.                                . rele modu mousedrv
  5422.  
  5423.                                From this example, the mouse driver is present in
  5424.                                memory. 
  5425.  
  5426. Example:                       if substr(dB4LIB,1,1) = "N"
  5427.                                   @ 1,0 Say "Error!  Need mouse driver in memory."
  5428.                                   @ 2,0 Say "Exit from application, load mouse" 
  5429.                                   @ 3,0 Say "driver into memory, and re-start"
  5430.                                   @ 4,0 Say "program."
  5431.                                endif
  5432.  
  5433.                                If your application requires a mouse, first test to
  5434.                                see if the mouse driver has been loaded into memory.
  5435.  
  5436. See:                           MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT, MOUSELFT,
  5437.                                MOUSESHW, MOUSEHID, MOUSECTR
  5438.  
  5439.  
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.  
  5449.  
  5450.  
  5451.  
  5452.  
  5453.  
  5454.  
  5455.                                         MOUSELNG
  5456.  
  5457.  
  5458. Syntax:                        MOUSELNG
  5459.  
  5460. Use:                           To determine the mouse language.
  5461.  
  5462. Parameters:                    MOUSE
  5463.  
  5464. Returns:                       The first character in the sending parameter will
  5465.                                have the language number if the mouse driver is
  5466.                                present in memory, and garbage if the mouse driver
  5467.                                is not present.  If you did not pass the parameter
  5468.                                correctly (e.g. dB4LIB = "ZOUSE"), your sending
  5469.                                parameter will be unchanged.
  5470.  
  5471. Example:
  5472.                                . load c:\dB4LIB\mousedrv
  5473.                                . dB4LIB = "MOUSE"
  5474.                                . call mousedrv with dB4LIB
  5475.                                . ?substr(dB4LIB,1,1) = "Y"
  5476.                                .T.
  5477.                                . rele modu mousedrv
  5478.  
  5479.                                . load c:\dB4LIB\mouselng
  5480.                                . dB4LIB = "MOUSE"
  5481.                                . call mouselng with dB4LIB
  5482.                                . ?asc(substr(dB4LIB,1,1))
  5483.                                . 0
  5484.                                . rele modu mouselng
  5485.  
  5486.                                From this example, the mouse language is English. 
  5487.                                Below is a table of all possible outcomes.
  5488.  
  5489.                                0 = English
  5490.                                1 = French
  5491.                                2 = Dutch
  5492.                                3 = German
  5493.                                4 = Swedish
  5494.                                5 = Finnish
  5495.                                6 = Spanish
  5496.                                7 = Portuguese
  5497.                                8 = Italian
  5498.  
  5499. See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSERHT, MOUSELFT,
  5500.                                MOUSESHW, MOUSEHID, MOUSECTR
  5501.  
  5502. Notes:                         First determine if the mouse driver has been loaded
  5503.                                into memory using the dB4LIB command "MOUSEDRV"
  5504.                                before using this command.  Otherwise, you will get
  5505.                                unwanted results.
  5506.  
  5507.  
  5508.  
  5509.                                         MOUSETYP
  5510.  
  5511.  
  5512. Syntax:                        MOUSETYP
  5513.  
  5514. Use:                           To determine the mouse type.
  5515.  
  5516. Parameters:                    MOUSE
  5517.  
  5518. Returns:                       The first character in the sending parameter will
  5519.                                have the mouse type if the mouse driver is present
  5520.                                in memory, and garbage if the mouse driver is not
  5521.                                present.  If you did not pass the parameter
  5522.                                correctly (e.g. dB4LIB = "ZOUSE"), your sending
  5523.                                parameter will be unchanged.
  5524.  
  5525. Example:
  5526.                                . load c:\dB4LIB\mousedrv
  5527.                                . dB4LIB = "MOUSE"
  5528.                                . call mousedrv with dB4LIB
  5529.                                . ?substr(dB4LIB,1,1) = "Y"
  5530.                                .T.
  5531.                                . rele modu mousedrv
  5532.  
  5533.                                . load c:\dB4LIB\mousetyp
  5534.                                . dB4LIB = "MOUSE"
  5535.                                . call mousetyp with dB4LIB
  5536.                                . ?asc(substr(dB4LIB,1,1))
  5537.                                . 2
  5538.                                . rele modu mousetyp
  5539.  
  5540.                                From this example, the mouse type is serial mouse. 
  5541.                                Below is a table of all possible outcomes.
  5542.  
  5543.                                1 = Bus mouse
  5544.                                2 = Serial mouse
  5545.                                3 = InPort mouse
  5546.                                4 = PS/2 mouse
  5547.                                5 = HP mouse
  5548.  
  5549. See:                           MOUSEDRV, MOUSEVER, MOUSELNG, MOUSERHT, MOUSELFT,
  5550.                                MOUSESHW, MOUSEHID, MOUSECTR
  5551.  
  5552. Notes:                         First determine if the mouse driver has been loaded
  5553.                                into memory using the dB4LIB command "MOUSEDRV"
  5554.                                before using this command.  Otherwise, you will get
  5555.                                unwanted results.
  5556.  
  5557.  
  5558.  
  5559.  
  5560.  
  5561.  
  5562.  
  5563.                                         MOUSEVER
  5564.  
  5565.  
  5566. Syntax:                        MOUSEVER
  5567.  
  5568. Use:                           To determine the mouse version.
  5569.  
  5570. Parameters:                    MOUSE
  5571.  
  5572. Returns:                       The first character in the sending parameter will
  5573.                                have the mouse major version number, and the second
  5574.                                character in the sending parameter will have the
  5575.                                mouse minor version number if the mouse driver is
  5576.                                present in memory.  If the mouse driver is not
  5577.                                present in memory, you will get garbage.  If you did
  5578.                                not pass the parameter correctly (e.g. dB4LIB =
  5579.                                "ZOUSE"), your sending parameter will be unchanged.
  5580.  
  5581. Example:
  5582.                                . load c:\dB4LIB\mousedrv
  5583.                                . dB4LIB = "MOUSE"
  5584.                                . call mousedrv with dB4LIB
  5585.                                . ?substr(dB4LIB,1,1) = "Y"
  5586.                                .T.
  5587.                                . rele modu mousedrv
  5588.  
  5589.                                . load c:\dB4LIB\mousever
  5590.                                . dB4LIB = "MOUSE"
  5591.                                . call mousever with dB4LIB
  5592.                                . ?asc(substr(dB4LIB,1,1))
  5593.                                . 6
  5594.                                . ?asc(substr(dB4LIB,2,1))
  5595.                                . 36
  5596.                                . rele modu mousever
  5597.  
  5598.                                From this example, the mouse version number is 6.36.
  5599.  
  5600.                                Please note that our mouse displayed version 6.24
  5601.                                when we executed mouse.com from the DOS prompt. 
  5602.                                When we used the dB4LIB command MOUSEVER from
  5603.                                within dBASE it returned version 6.36.  
  5604.  
  5605. See:                           MOUSEDRV, MOUSETYP, MOUSELNG, MOUSERHT, MOUSELFT,
  5606.                                MOUSESHW, MOUSEHID, MOUSECTR
  5607.  
  5608. Notes:                         First determine if the mouse driver has been loaded
  5609.                                into memory using the dB4LIB command "MOUSEDRV"
  5610.                                before using this command.  Otherwise, you will get
  5611.                                unwanted results.
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.                                         NUMCHAR
  5618.  
  5619.  
  5620. Syntax:                        NUMCHAR
  5621.  
  5622. Use:                           To determine if the parameter (byte) passed is a
  5623.                                character or a number.
  5624.  
  5625. Parameters:                    Character or number.
  5626.  
  5627. Returns:                       The first character in the sending parameter will
  5628.                                have a "C" if the parameter passed is a character,
  5629.                                a "N" if the parameter passed is a number.  If you
  5630.                                did not pass the parameter correctly (e.g. dB4LIB
  5631.                                = ""), your sending parameter will be unchanged.
  5632.  
  5633. Example:                       . load c:\dB4LIB\numchar
  5634.                                . dB4LIB = "A"
  5635.                                . call numchar with dB4LIB
  5636.                                . ?substr(dB4LIB,1,1) = "C"
  5637.                                .T.
  5638.                                . rele modu numchar
  5639.  
  5640.                                From this example, the parameter passed is a
  5641.                                character.
  5642.  
  5643. Example:                       . load c:\dB4LIB\numchar
  5644.                                . dB4LIB = "0"
  5645.                                . call numchar with dB4LIB
  5646.                                . ?substr(dB4LIB,1,1) = "N"
  5647.                                .T.
  5648.                                . rele modu numchar
  5649.  
  5650.                                From this example, the parameter passed is a number.
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656.  
  5657.  
  5658.  
  5659.  
  5660.  
  5661.  
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.  
  5668.  
  5669.  
  5670.  
  5671.                                         PRNTSCRN
  5672.  
  5673.  
  5674. Syntax:                        PRNTSCRN
  5675.  
  5676. Use:                           To print the ASCII contents on the monitor (screen).
  5677.  
  5678. Parameters:                    None
  5679.  
  5680. Returns:                       Nothing.
  5681.  
  5682. Example:                       . load c:\dB4LIB\prntscrn
  5683.                                . call prntscrn
  5684.                                . rele modu prntscrn
  5685.                                                                 
  5686.                                From this example, the ASCII contents on the monitor
  5687.                                (screen) are sent to the printer.
  5688.  
  5689. Notes:                         Make sure the printer is turned on and is ready to
  5690.                                accept the screen output.  Otherwise, you could
  5691.                                unwanted results.
  5692.  
  5693.  
  5694.  
  5695.  
  5696.  
  5697.  
  5698.  
  5699.  
  5700.  
  5701.  
  5702.  
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.                                         XMSDRV
  5726.  
  5727.  
  5728. Syntax:                        XMSDRV
  5729.  
  5730. Use:                           To determine the presence of the HIMEM.SYS driver. 
  5731.  
  5732. Parameters:                    XMSDRV
  5733.  
  5734. Returns:                       The first character in the sending parameter will
  5735.                                have a "Y" if the driver is present in memory, and
  5736.                                a "N" if it is not present.  If you did not pass the
  5737.                                parameter correctly (e.g. dB4LIB = "ZMSDRV"), your
  5738.                                sending parameter will be unchanged.
  5739.  
  5740. Example:                       . load c:\dB4LIB\xmsdrv
  5741.                                . dB4LIB = "XMSDRV"
  5742.                                . call xmsdrv with dB4LIB
  5743.                                . ?substr(dB4LIB,1,1) = "Y"
  5744.                                .T.
  5745.                                . rele modu xmsdrv
  5746.                                                                 
  5747.                                From this example, the HIMEM.SYS driver is present
  5748.                                in memory.
  5749.  
  5750.  
  5751.  
  5752.  
  5753.  
  5754.  
  5755.  
  5756.  
  5757.  
  5758.  
  5759.  
  5760.  
  5761.  
  5762.  
  5763.  
  5764.  
  5765.  
  5766.  
  5767.  
  5768.  
  5769.  
  5770.  
  5771.  
  5772.  
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.  
  5779. BIOSDATE ........... Page 34
  5780. CAPSOFF ............ Page 64
  5781. CAPSON ............. Page 67
  5782. CAPSSTAT ........... Page 58
  5783. CDROMDRV ........... Page 96
  5784. CDROMVER ........... Page 97
  5785. COM1200 ............ Page 72
  5786. COM2400 ............ Page 73
  5787. COM300 ............. Page 71
  5788. COM4800 ............ Page 74
  5789. COM9600 ............ Page 75
  5790. COMBID ............. Page 81
  5791. COMDR .............. Page 77
  5792. COMFE .............. Page 80
  5793. COMOE .............. Page 78
  5794. COMPE .............. Page 79
  5795. COMSTAT ............ Page 76
  5796. COMTHR ............. Page 82
  5797. COMTOE ............. Page 84
  5798. COMTSR ............. Page 83
  5799. CONVMEM ............ Page 35
  5800. CREATDIR ........... Page 22
  5801. CURSCOL ............ Page 98
  5802. CURSROW ............ Page 99
  5803. DAYWEEK ............ Page 100
  5804. DOSVERS ............ Page 23
  5805. DRIVERDY ........... Page 24
  5806. EXTMEM ............. Page 36
  5807. GAMEADAP ........... Page 37
  5808. GETATTR ............ Page 26
  5809. GETDRIVE ........... Page 25
  5810. GETVERFY ........... Page 27
  5811. INSSTAT ............ Page 59
  5812. LEFTSHFT ........... Page 60
  5813. LPTINIT ............ Page 85
  5814. LPTSTAT ............ Page 86
  5815. MATHCOPR ........... Page 38
  5816. MCA ................ Page 39
  5817. MODMCTS ............ Page 91
  5818. MODMDCTS ........... Page 87
  5819. MODMDDSR ........... Page 88
  5820. MODMDRLS ........... Page 90
  5821. MODMDSR ............ Page 92
  5822. MODMRI ............. Page 93
  5823. MODMRLS ............ Page 94
  5824. MODMTER ............ Page 89
  5825. MOUSEDRV ........... Page 101
  5826. MOUSELNG ........... Page 102
  5827. MOUSETYP ........... Page 103
  5828. MOUSEVER ........... Page 105
  5829. NODRIVES ........... Page 40
  5830. NUMCHAR ............ Page 106
  5831. NUMOFF ............. Page 65
  5832. NUMON .............. Page 68
  5833. NUMSTAT ............ Page 61
  5834. PARALLEL ........... Page 54
  5835. PC ................. Page 42
  5836. PCAT ............... Page 44
  5837. PCBUS .............. Page 41
  5838. PCCONV ............. Page 47
  5839. PCJR ............... Page 45
  5840. PCXT ............... Page 43
  5841. PCXT286 ............ Page 46
  5842. PRNTSCRN ........... Page 106
  5843. PS2M30 ............. Page 48
  5844. PS2M50 ............. Page 49
  5845. PS2M55 ............. Page 50
  5846. PS2M60 ............. Page 51
  5847. PS2M70 ............. Page 52
  5848. PS2M80 ............. Page 53
  5849. REALTIME ........... Page 55
  5850. REMOVDIR ........... Page 28
  5851. RGHTSHFT ........... Page 62
  5852. SCRLOFF ............ Page 66
  5853. SCRLON ............. Page 69
  5854. SCRLSTAT ........... Page 63
  5855. SERIAL ............. Page 56
  5856. SETATTR ............ Page 31
  5857. SETDIR ............. Page 29
  5858. SETDRIVE ........... Page 30
  5859. SETVERFY ........... Page 32
  5860. XMSDRV ............. Page 107
  5861.